摘 要: 在分布式存储中大功率电感器厂家,客户端的数据访问请求并非完全随机,它是由程序或者用户的行为驱动,因此文件访问顺序是可以预测的;服务器端收到的访问请求在时间轴上也非平坦分布,因此服务器有时繁忙有时空闲。为此,提出了一种基于文件预测的分布式缓存模型,在客户端预测将要访问的文件,并利用服务器空闲时间传输预测文件。
关键词: 分布式存储;文件预测;缓存技术
近年来,数据成爆炸式增长,传统存储方式已无法满足数据增长速度的要求,在此现状下,分布式存储技术得到了快速发展。限于成本与科技等原因,多数分布式存储都是利用大量廉价PC搭建而成[1],与传统的单机存储一样,在分布式存储系统中I/O也是制约其整体性能的一个瓶颈,因此相继提出了分布式缓存系统。
典型的分布式缓存系统如Oracle coherence[2]、Memcached[3]、Terracotta[4],在弹性资源供给、可用性与可靠性、敏捷性与自适应性、多承租、数据管理、数据安全与隐私等方面已设计得较为完善,同时也有其不足之处:对数据的迁移是以容量均衡为目标而缺少对热点数据的处理;访问频率低的客户端缓存数据被换出导致资源劫持等[5]。
热点数据不均衡造成服务器之间接收到访问请求的不均衡,而客户的行为也有时间局域性,例如工作时间访问工作相关数据多,非工作时间访电感生产厂家问娱乐数据多,这导致服务器收到的访问请求在时间上分布不平坦。预取可改善系统I/O的两个主要性能指标[6]:利用异步预取在程序使用文件之前将文件准备就绪,可对应用程序隐藏磁盘I/O延时;在服务器空闲时间使用预取可以提升服务器的使用率。
数据的访问请求并非完全随机,它是由用户或程序的行为驱动,存在特定的访问模式。当用户执行程序访问数据时,连续访问的一系列数据之间必然存在一定的关联[7],因此在客户端构建文件预测模型对将要使用的文件进行异步预取是可以实现的。为此提出了一种基于文件预测的分布式缓存模型DLSDCM(DLS based Distributed Cache Model),在客户端建立由经典的文件预测模型LS(Last Successor)改进而成的文件预测模型DLS(Double Last Successor),并利用服务器的空闲时间进行预测请求数据的传输。此模型建立在其他分布式缓存系统之上,完善其资源劫持、热点数据分布不均衡等方面, 同时也可作为单独的缓存模型使用。
1 文件预测模型
数据的访问请求并非完全随机,它是由用户或程序的行为驱动,用户执行某种应用程序去访问数据,连续访问的不同文件之间必然存在一定的关联。可构造出一种文件预测模型,通过对数据本体间的内在联系或者历史访问记录进行分析并构造出预测数据库,依据预测数据对预测文件进行异步预读并缓存。当应用程序使用这些数据时,便可大幅度减少数据的访问延时,同时也减少了服务器空闲时间,提升了网络使用率。本文主要研究LS预测模型。
1.1 LS文件预测模型
当用户访问一系列数据时,或多或少会重复上一次的访问顺序,因此LS模型是最常用也是最简单的文件预测模型,被多数预测系统采用。Linux内核采用的预取算法亦是根据上次及本次的读请求进行顺序模式的匹配[8]。
但是LS文件预测模型在交替访问文件时就会完全失效,例如第一次访问顺序为文件A、文件B;第二次访问顺序为文件A、文件I;第三次又重复第一次顺序为文件A、文件B。对于这样的交替访问,使用LS模型预测文件A的后继则完全失效。若将预测的文件数扩大为2个,即对于每个文件同时预读其上一次访问的后继文件和上上一次访问的后继文件,则可避免交替访问的预测失效,据此本文提出了DLS文件预测模型。
1.2 DLS文件预测模型
DLS文件预测模型一次可预测2个文件:上次访问顺序中的后继和上上次访问顺序的后继,预测命中的概率将会有很大提高。图1所示为DLS模型对文件A后继的预测,图中文件A、B、I、U、D代表独立的文件,而非顺序文件。
由于一次预测2个文件,因此数据传输时也会有2个文件同时传输,参考使用概率图来预测未来文件访问的文件预测模型[9],分别记录文件B和文件I的预测命中次数,并依命中次数来决定两个文件传输时各自占用的带宽比例,例如,记录中文件B命中了40次,文件I命中了60次,此时文件B占40%带宽, 文件I占60%的带宽比例进行传输。 大功率电感厂家 |大电流电感工厂