Pax: Partition-Aware Autoscaling For The Cassandra Nosql Database
收藏资源简介:
Apache Cassandra has emerged as one of the most widely adopted NoSQL databases. However, there is still a limited understanding on how to optimally operate Cassandra in the cloud using autoscaling methods, by which resources can be scaled up or down to reduce operational costs and meet service-level objectives (SLOs). To address this limitation, we present PAX, a partition-aware elastic resource management system for Apache Cassandra. PAX uses low-overhead query sampling and knowledge of the data-partitioning across the nodes to automatically adapt capacity in Cassandra clusters. Differently from existing autoscaling methods for Cassandra, which incur large acquisition times for new nodes, PAX exploits Cassandra's hinted handoff mechanism and a shared hints storage to minimize the time needed to acquire a node into the cluster. We propose a reactive and a proactive implementation of PAX and compare their performance against different workloads with varying intensities and item popularity distributions, finding that the proactive version significantly reduces SLO violations.
Apache Cassandra已成为应用最为广泛的非关系型数据库(NoSQL)之一。然而,当前业界与学界对如何在云环境中通过自动扩缩容手段最优运维Apache Cassandra的认知仍较为有限——此类自动扩缩容方案可通过动态调整资源规模,实现运维成本降低与服务水平目标(Service-level Objectives,SLOs)的达成。为填补这一研究空白,我们提出PAX:一款面向Apache Cassandra的分区感知弹性资源管理系统。PAX依托低开销查询采样技术,并结合节点间的数据分区分布知识,可自动适配Cassandra集群的容量需求。与现有需耗费大量新节点接入时长的Cassandra自动扩缩容方法不同,PAX借助Cassandra的提示移交(hinted handoff)机制与共享提示存储,大幅缩短了新节点加入集群所需的时间。我们分别实现了PAX的反应式与主动式两种实现版本,并针对不同强度的工作负载与多样化的物品流行度分布开展性能对比实验。实验结果显示,主动式PAX可显著减少服务水平目标违规事件的发生。



