KeyValueServe†: Design and performance analysis of a multi-tenant data grid as a cloud service
Distributed key-value stores have become indispensable for large-scale cluster applications. Many cloud services have deployed in-memory data grids for their enterprise infrastructures and support multi-tenancy services. However, most services do not offer fine-grained multi-tenant resource sharing. To this front, we present KeyValueServe, a low overhead cloud service with features aiding resource management. Results based on Hazelcast, a popular open source data grid, indicate that KeyValueServe can efficiently provide services to tenants without degrading performance. Providing consistent performance to all tenants for fluctuating workloads is still difficult. Performance problems occur at scale with diverse tenant requirements. To address this, the paper provides insights to contention and performance bottlenecks. Through experimental analysis, we uncover scenarios of performance degradation and demonstrate optimized performance via coalescing multiple clients' requests. Our work indicates that a Hazelcast cluster can get congested with multiple concurrent connections when processing client requests, resulting in poor performance. KeyValueServe can reduce the number of parallel connections maintained for client requests, resulting in improved performance.