Workload-Aware Resource Reservation for Multi-Tenant NoSQL Jiaan Zeng and Beth Plale School of Informatics and Computing Indiana University Bloomington, Indiana 47408 Email: {jiaazeng, plale}@indiana.edu Abstract—Cloud hosted NoSQL data stores are for economic reasons often shared amongst multiple tenants simultaneously. The NoSQL provider consolidates multiple tenants access into a shared NoSQL instance and provides a dedicated view for each tenant. This multi-tenancy has tenants’ data and workloads coexisting in the same node, which under certain conditions can lead to performance degradation of one tenant caused by another. In this paper, we investigate the multi-tenant interference in a common NoSQL store, HBase, and propose a resource reservation framework that reserves resources for prevention and dynamically adjusts the reservations according to tenant resource demands. The framework enforces cache reservation by splitting the cache space and disk reservation by scheduling requests to a distributed file system (DFS). A stochastic hill climbing algorithm is used to find a near-optimum plan for different resources reservations. Empirical results show that the framework can prevent interference and adapt to dynamic workloads under multi-tenancy. I. I NTRODUCTION NoSQL data stores see a great deal of usage today: man- aging large streams of non-transactional data, fast key-value access, big data analysis in MapReduce, etc. [1]. Cloud hosted NoSQL data stores provide a database-as-a-service. In this model, a user (or tenant) claims a work space e.g. a table, stores data to the table, and runs its workload within its workspace. From a tenant’s point of view, the resource is dedicated and exclusive, and as such exhibit predictable perfor- mance. However, for economic reasons a cloud provider will consolidate tenant workspaces into as small an infrastructure as possible to maximize resource utilization resulting in the same cloud storage infrastructure being shared by multiple ten- ants. But as we show for HBase, a shared infrastructure under multi-tenancy can display resource contention across tenants, and hence variable performance for an individual tenant. For example, an ill-behaved tenant can take up a well-behaved tenant’s resources and degrade the latter’s performance. This interfering behavior in multi-tenancy is undesirable. Resource reservation is a common approach to avoiding performance interference among tenants. The basic idea is to dedicate a portion of a resource to a tenant for their use. As workloads usually have multiple resources involved e.g. CPU for serialization/deserialization, memory for caching, disk for reading/writing data, a tenant needs to acquire a reservation on each resource. But reservations are not all alike: a workload that has a hotspot access pattern may require more cache than does a workload with a random access pattern. An equal reservation of cache and disk usage for both workloads will not yield the best result. So reservations have to be based on workload characteristics, also called workload-aware reservation. A workload-aware reservation becomes more complicated if a workload changes its dynamics i.e. a workload changes its access pattern during the access which requires the system to be able to adjust accordingly. In addition, the distributed nature of NoSQL stores makes the workload-aware reservation more difficult. For a typical NoSQL store, a request is sent to one node which may contact several other nodes to fetch the data. It is complicated to have a coordination among different resources and nodes. Previous research on preventing performance interference does so by simplifying the scenario, either by considering a single resource [2], [3], [4], [5] (e.g. CPU, cache), or by representing multiple resources consumption as a single “vir- tual resource” consumption [6], [7]. Ignoring various resource demands that workloads have could lead to low resource utilization as the system imposes unnecessary constraints to tenants and even failure of preventing interference as the system only considers a single resource. In this paper, we propose Argus 1 , a workload-aware re- source reservation framework that targets multiple resource reservations and aims to prevent performance interference, in terms of fair throughput violation, in NoSQL stores. Specifi- cally, Argus focuses on cache and disk reservations. It enforces the cache reservation by splitting the cache space among tenants. It approximates the disk usage by throughput of the underlying file system and uses a request scheduler to enforce throughput reservation. Argus models the workload- aware reservation as a constrained optimization and uses the stochastic hill climbing algorithm to find the proper reservation according to various workloads’ resource demands. We applied the idea from Argus to HBase [8], a state-of-art NoSQL data store. In summary, this paper makes the following contribu- tions: • Quantitative evidences for existence of interference in HBase; • Mechanisms to enforce reservation on both cache and disk resource under multi-tenancy; 1 Argus, the 100-eyed watchman in Greek mythology.