Handling Highly Contended OLTP Workloads Using Fast Dynamic Partitioning

Handling Highly Contended OLTP Workloads Using Fast Dynamic Partitioning
复制标题

DOI:
10.1145/3318464.3389764
复制
发表时间:
2020-05
期刊:
Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data
影响因子:
--
通讯作者:
G. Prasaad;Alvin Cheung;Dan Suciu
G. Prasaad;Alvin Cheung;Dan Suciu
中科院分区:
其他
文献类型:
--
作者:
G. Prasaad;Alvin Cheung;Dan Suciu

文献摘要

被引文献

相似文献

事务处理的研究在提高内存多核OLTP系统在低竞争环境下的性能方面取得了重大进展。然而,这些系统在充满冲突的工作负载中挣扎。分区数据库(及其变体)在可静态分区的高争用工作负载上表现良好,但随时间变化的工作负载往往使其不切实际。为了解决这一问题,我们提出了一种新颖的事务处理方案-一种新颖的事务处理方案,它动态地将事务聚集在一起,并在没有任何并发控制的情况下执行其中的大部分事务。冲突以批处理的方式执行事务,其中每个批处理被划分为互不相交的集群,没有任何跨集群冲突和一小部分残差。然后,集群在没有并发控制的情况下并行执行,随后是在并发控制下单独执行的剩余部分。Rife使用一种快速的动态聚类算法,该算法利用随机抽样和并发联合查找数据结构的组合来在线划分批处理,然后再执行它。在高争用工作负载上,冲突的性能比基于锁的协议和乐观协议高出2倍。虽然在可静态分区的情况下,与分区系统相比,冲突会产生大约50%的开销,但在不可能进行这种静态分区并适应动态变化的工作负载的情况下,它的性能要高出2倍。
Research on transaction processing has made significant progress towards improving performance of main memory multicore OLTP systems under low contention. However, these systems struggle on workloads with lots of conflicts. Partitioned databases (and variants) perform well on high contention workloads that are statically partitionable, but time-varying workloads often make them impractical. Towards addressing this, we propose Strife---a novel transaction processing scheme that clusters transactions together dynamically and executes most of them without any concurrency control. Strife executes transactions in batches, where each batch is partitioned into disjoint clusters without any cross-cluster conflicts and a small set of residuals. The clusters are then executed in parallel with no concurrency control, followed by residuals separately executed with concurrency control. Strife uses a fast dynamic clustering algorithm that exploits a combination of random sampling and concurrent union-find data structure to partition the batch online, before executing it. Strife outperforms lock-based and optimistic protocols by up to 2x on high contention workloads. While Strife incurs about 50% overhead relative to partitioned systems in the statically partitionable case, it performs 2x better when such static partitioning is not possible and adapts to dynamically varying workloads.