论文部分内容阅读
随着互联网技术的快速发展,世界进入大数据时代,每天都有海量数据的产生,这使得分布式存储系统的存储开销越来越大。分布式存储系统内保证数据高可用的冗余机制使得这种情况更加恶化。目前分布式存储系统内的数据冗余机制主要有两种:一种是多副本,另一种是纠删码。相比于多副本直接将数据备份多份,纠删码利用特定编码规则生成少量冗余数据,极大地减少了存储开销。但是纠删码自身的复杂规则导致分布式存储系统的读、写、更新操作会消耗更多的CPU、网络I/O、硬盘I/O资源,从而导致相应操作的延迟较大。因此,纠删码目前主要用于冷数据或者温数据的存储来减少存储开销,需要频繁访问、更新的热数据仍然用多副本方式存储,来保证热数据的操作性能。针对纠删码存储系统在热数据存储场景下延迟较大问题,本文设计了一种基于日志结构的存储策略,LSEC(Log-Structured Erasure Coding),从系统架构角度,结合多副本和纠删码各自的优点,在提高系统存储效率的同时,满足客户端对热数据存取的性能需求。本文的主要贡献如下:(1)针对在热数据存储场景下纠删码的写、更新操作高延迟问题,设计了LSEC存储策略,借助于日志结构存储,利用非易失性缓冲暂时存储数据,确保数据的持久化和请求的低响应延迟,通过异步纠删码操作降低系统存储开销。(2)为了降低日志结构带来的频繁的垃圾回收操作对系统性能的影响,提出一种分区垃圾回收方法,根据条带粒度将存储节点划分成多个分区,垃圾回收只在在本地分区内执行,进一步改善系统性能。(3)构建了一个系统原型,实现了提出的相关策略。实验结果表明相比于基于DRAM的纠删码存储系统和基于SSD的多副本存储系统,提出的LSEC策略能够降低写、更新操作延迟约1.7倍至20倍。实验结果也表明分区垃圾回收策略能够有效降低垃圾回收活动对系统性能的影响。