论文部分内容阅读
数据中心运行着多种类型的应用,例如社交网络、大数据分析、企业应用。这些应用对存储系统的要求(持久性、一致性和性能等)各有不同。随着存储技术的发展,存储层次结构的深度不断增加,且更加多样化。为了应对日益增长的存储需求,数据中心普遍采用多级存储架构,目的是平衡系统整体性能、可用性以及成本等因素。由于各级存储层之间存在功能和性能的差异,各层之间能否良好协作,能否适应多样化的存储需求,会直接影响到应用的性能。 为了提高数据存取性能,针对多级存储的研究及产品不断涌现。例如,Web应用和服务普遍积极地将后端存储中的数据进行缓存,目的是降低数据访问延迟和降低后端存储的负载。常见的缓存机制包括Key-Value缓存,本地对象缓存和前端HTTP缓存等。缓存的性能是由工作负载和缓存替换策略共同决定的。但多数Web应用和服务所采用的缓存替换策略不够灵活(例如LRU策略、FIFO策略),无法适应多样化的存取负载。 随着数据量的爆炸性增长,如何实现高性能低成本数据备份成为数据中心存储系统的重要任务之一。数据去重技术已被广泛应用于数据中心备份系统,其基本工作流程可以被大致分为切块、指纹计算、指纹索引和进一步压缩四个步骤。由于指纹索引是公认的性能瓶颈,系统通常会在内存中维护一个指纹缓存并利用指纹预取来加速重复数据鉴别。但当前系统所采用的指纹缓存替换策略没有区分按需请求和预取请求,无法使指纹缓存发挥最大效能。 针对上述研究现状,本文面向数据中心存储系统,分别针对存取负载和备份负载进行分析并设计了相应的缓存机制,致力于进一步提高数据存取性能和数据备份性能,最终实现数据中心存储系统整体性能提升。 首先,本文从时间、空间和时空三个维度对存取负载进行分析。分析结果发现存取负载具有局部性,但普遍存在扫描现象(扫描是指仅出现一次的访问序列,通常来自搜索、更新和一些周期性操作)。已有研究中针对存取负载的缓存机制普遍存在无法适应扫描或开销过大的问题。本文提出一种紧凑型抗扫描缓存替换框架MemSC。MemSC为每个对象赋予一个多粒度优先级标识,每个优先级标识通常仅需要2比特,显著降低了元数据空间开销,通过动态调整标识的优先级即可支持抗扫描缓存替换策略。 然后,本文针对备份负载进行分析。分析结果发现指纹预取机制能够提升指纹缓存的性能,但大多数预取指纹在被逐出指纹缓存前没有被使用过或仅被使用过一次,这些不准确的预取指纹会污染缓存。本文提出一种预取感知指纹缓存管理机制PreCache。PreCache的基本设计理念是为预取请求和按需请求做出不同的缓存替换决策。PreCache可以适配到多种已有的缓存替换策略中,包括LRU策略以及更智能的策略。PreCache和指纹预取机制的相互作用能够进一步提升数据备份性能。