  Multi-tenancy hosting of users in cloud NoSQL data stores is favored by cloud
providers because it enables resource sharing at low operating cost.
Multi-tenancy takes several forms depending on whether the back-end file system
is a local file system (LFS) or a parallel file system (PFS), and on whether
tenants are independent or share data across tenants. In this thesis I focus on
and propose solutions to two cases: independent data-local file system, and
shared data-parallel file system.
  In the independent data-local file system case, resource contention occurs
under certain conditions in Cassandra and HBase, two state-of-the-art NoSQL
stores, causing performance degradation for one tenant by another. We
investigate the interference and propose two approaches. The first provides a
scheduling scheme that can approximate resource consumption, adapt to workload
dynamics and work in a distributed fashion. The second introduces a
workload-aware resource reservation approach to prevent interference. The
approach relies on a performance model obtained offline and plans the
reservation according to different workload resource demands. Results show the
approaches together can prevent interference and adapt to dynamic workloads
under multi-tenancy.
  In the shared data-parallel file system case, it has been shown that running
a distributed NoSQL store over PFS for shared data across tenants is not cost
effective. Overheads are introduced due to the unawareness of the NoSQL store
of PFS. This dissertation targets the key-value store (KVS), a specific form of
NoSQL stores, and proposes a lightweight KVS over a parallel file system to
improve efficiency. The solution is built on an embedded KVS for high
performance but uses novel data structures to support concurrent writes.
Results show the proposed system outperforms Cassandra and Voldemort in several
different workloads.
