Skip to main content
QUICK REVIEW

[论文解读] DGCC:A New Dependency Graph based Concurrency Control Protocol for Multicore Database Systems

Chang Yao, Divyakant Agrawal|arXiv (Cornell University)|Mar 12, 2015
Distributed systems and fault tolerance参考文献 29被引用 6
一句话总结

本文提出DGCC,一种基于依赖图的并发控制协议,该协议在多核内存OLTP系统中将并发控制与事务执行解耦。通过预先分析事务依赖关系并在执行前解决冲突,DGCC实现了零运行时争用的高并行性,在高争用工作负载下,吞吐量最高可达现有最先进协议的四倍。

ABSTRACT

Multicore CPUs and large memories are increasingly becoming the norm in modern computer systems. However, current database management systems (DBMSs) are generally ineffective in exploiting the parallelism of such systems. In particular, contention can lead to a dramatic fall in performance. In this paper, we propose a new concurrency control protocol called DGCC (Dependency Graph based Concurrency Control) that separates concurrency control from execution. DGCC builds dependency graphs for batched transactions before executing them. Using these graphs, contentions within the same batch of transactions are resolved before execution. As a result, the execution of the transactions does not need to deal with contention while maintaining full equivalence to that of serialized execution. This better exploits multicore hardware and achieves higher level of parallelism. To facilitate DGCC, we have also proposed a system architecture that does not have certain centralized control components yielding better scalability, as well as supports a more efficient recovery mechanism. Our extensive experimental study shows that DGCC achieves up to four times higher throughput compared to that of state-of-the-art concurrency control protocols for high contention workloads.

研究动机与目标

  • 解决传统并发控制协议(如基于锁、基于时间戳)在现代多核内存OLTP系统中可扩展性差和性能瓶颈的问题。
  • 克服集中式控制组件和争用导致的事务中止所引发的并行性和吞吐量限制。
  • 通过将依赖分析与执行解耦并利用细粒度操作级并行性,实现更高的事务吞吐量。
  • 设计一种无需集中控制组件的可扩展系统架构,并集成高效的恢复机制。

提出的方法

  • 将事务分批并分解为原子操作,以支持细粒度并行性。
  • 为每一批事务构建依赖图,以建模操作之间的读-写和写-写冲突。
  • 利用依赖图预先调度操作,按可串行化顺序执行,从而消除运行时争用。
  • 只要操作之间无冲突,就在多个线程上并行执行,确保可串行化。
  • 通过在执行前单独处理依赖图,将并发控制逻辑与执行解耦。
  • 消除全局锁管理器或时间戳分配器等集中式组件,以提升可扩展性。

实验结果

研究问题

  • RQ1一种将依赖分析与执行分离的并发控制协议,是否能在高争用的多核内存OLTP工作负载中实现更高的吞吐量?
  • RQ2通过依赖图预先解决冲突,与传统的基于锁或基于时间戳的协议相比,对事务中止率和并行性有何影响?
  • RQ3在多核系统中,移除集中式控制组件在多大程度上能提升可扩展性?
  • RQ4批处理大小和依赖图复杂度对系统延迟和吞吐量有何影响?

主要发现

  • DGCC在高争用工作负载(如TPC-C和YCSB)下,吞吐量最高可达现有最先进并发控制协议的四倍。
  • 通过在图构建阶段解决冲突而非运行时,协议显著降低了事务中止率。
  • 吞吐量随批处理大小增加而提升,但超过某一临界点后,由于依赖图规模增大,延迟开始上升。
  • 系统能有效扩展更多工作线程,但需增大批处理大小以充分利用计算资源。
  • 移除全局锁管理器或时间戳分配器等集中式组件,显著提升了系统可扩展性。
  • 原型系统集成了高效的恢复机制,支持高性能崩溃恢复,且不牺牲吞吐量。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。