论文部分内容阅读
计算机硬件性能的提升正在推动着内存计算的发展:一方面,内存容量的不断增长使得传统应用可以将数据存储在内存中进行处理,从而显著地提高了系统性能;另一方面,多核平台中处理器核数量的不断增长为内存计算提供了强大的处理能力。然而,内存计算也面临着新的挑战:一方面,由于系统瓶颈从I/O向CPU与内存转变,如何设计高可扩展的内存计算系统以充分利用大规模内存与处理器核,成为内存计算的一个重要问题;另一方面,内存的易失性也使得如何提供高效的系统可靠性变得更加重要。实现高可扩展内存计算系统的难点在于提供共享资源的并发访问。传统的优化方法主要使用基于细粒度锁或原子指令等方式实现对共享资源并发访问的保护,但是这种方法一方面增加了系统设计和实现的复杂度,使得系统的正确性难以保证,另一方面过于保守的同步策略也限制了可能的并行性。此外,在内存计算系统中增加高可靠性的需求进一步限制了系统的性能与可扩展性。硬件事务内存(Hardware Transactional Memory,HTM)的出现与商用化为构建高可扩展、高可靠内存计算系统提供了新的思路。然而,硬件事务内存由于工艺设计的限制,存在较多的受限性,因而被称为受限事务内存(Restricted Transactional Memory,RTM)。典型的受限性包括可容纳的工作集较小从而不能容纳内存计算中的大数据集、硬件事务执行中不能发生中断从而不能支持较长时间的内存计算事务等。此外,硬件事务内存还缺乏持久化存储的支持,因而宕机时不能保证系统状态的一致性。本文围绕如何基于硬件事务内存设计高可扩展的内存计算系统开展研究,系统地研究了当前商用硬件事务内存的特征,并在此基础上从多个层面对内存计算系统的可扩展性展开研究:1)数据存储层:基于RTM构建高可扩展内存键值存储系统,提供对非结构化数据的高效存储和访问;2)数据库层:基于RTM构建高可扩展内存数据库管理系统,提供结构化数据的存储和事务性处理;3)并发控制层:提出基于事务切分和RTM的并发控制机制,用于保证并行事务计算的正确性和可扩展性;4)硬件层:提出基于非易失性存储器的可持久化硬件事务内存技术,为内存计算存储系统提供高可靠性支持。具体而言,本文的具体贡献如下:1.提出基于RTM构造可扩展并行数据结构的方法,在此基础上构造高可扩展内存键值存储系统。针对RTM硬件限制和特性,使用内存预分配、编译调优和缓存行对齐等技术构建多种高可扩展并行数据结构(B+树、跳表、散列表和布谷鸟散列表),以支持对键值存储的有序/无序访问。实验显示,基于RTM构建的有序键值存储系统相比已知最快有序键值存储系统Masstree有10%的性能提升。2.提出基于RTM的乐观并发控制(Optimistic Concurrency Control)算法,在此基础上构造高可扩展内存数据库。针对RTM的硬件限制和特性,使用基于序列号的冲突检测、待更新数据预查找以及基于内存引用置换的事务提交等方法设计并实现高可扩展的乐观并发控制机制,在此基础上构建了高可扩展内存数据库管理系统。该系统还提供了基于RTM的数据库快照机制、基于重做日志的可扩展持久化机制以及基于静息状态(quiescent state)的垃圾回收机制等。实验显示,该系统在具有四个处理核的测试平台上可以达到每秒处理50万个事务请求的吞吐量,比已知最快内存数据库Silo有60%的性能提升。3.提出基于交错限制(Interleaving Constrained)的事务切分(Transaction Choping)算法,结合事务切分和RTM构建高可扩展并发控制机制。通过限制事务并行执行时的交错顺序,支持对事务的任意粒度切分并保证事务执行的可串行性(Serializability)语义。使用RTM对关键事务片段的保护,保证事务的原子性和一致性语义。实验表明,相比于传统乐观并发控制机制和阶段锁(2-Phase Locking)并发控制机制,该机制有30%以上性能提升;即使在并行访问冲突严重的情况下,该并发控制机制仍具有高可扩展性。4.提出基于非易失性存储器的可持久化硬件事务内存技术,为内存计算系统提供高效持久化机制。在使用非易失性存储器作为主存的基础上,使用记分牌和撤销日志技术保证宕机时系统状态的一致性。评测结果显示对于键值存储系统,在保证其高可扩展性的基础上,增加持久化支持只会带来10%额外缓存行写回开销。