摘要
近年来,写密集型应用程序越来越普遍.如何有效地处理这种工作负载,是数据库系统领域深入研究的方向之一.写操作开销主要由以下两个方面的因素构成:(1)硬件级别,即写操作引起的I/O,目前无法在短时间内消除这种开销;(2)软件开销,即修改内存数据拷贝以及构造日志记录造成的多次写操作.日志即数据(log-as-database,称其为单拷贝系统)的架构能够减少写操作引起的I/O,同时降低软件方面的开销.目前,业界对单拷贝系统展现出浓厚的兴趣.现有的单拷贝系统大部分建立在特殊的基础设施之上,例如infiniband或NVRam(非易失性随机存取存储器),这种基础设施尚未达到广泛可用或者是依托他系统(例如Dynamo)构建,这种方法缺乏灵活性与普适性.在商用机器环境中,自底向上构建了一个称为LogStore的键值数据库系统,采用log-as-database设计理念,以充分利用单拷贝系统的优点,在提升写操作性能的同时,有效缩短主备数据之间的差距.在系统中内嵌复制协议达到高可用性而不是依赖其他系统,使得系统灵活可控.系统新颖的查询执行模型将执行线程与特定分片绑定,结合多版本并发控制技术,以无锁的方式消除读写冲突、写写冲突以及上下文切换开销.用YCSB对系统性能进行了详细的评估,对比主流的键值系统HBase以及单拷贝系统实现LogBase,LogStore在写密集型工作负载上性能要优4倍左右.在崩溃恢复方面,LogStore可在1分钟之内完成TB级别数据规模的恢复,比LogBase要快1个数量级以上.
- 单位