[发明专利]一种分布式文件系统中元数据缓存管理的方法有效

专利信息
申请号: 201110326472.2 申请日: 2011-10-25
公开(公告)号: CN102375780A 公开(公告)日: 2012-03-14
发明(设计)人: 杨浩;马照云;马振杰;张东阳;邵宗有;刘新春;苗艳超;王勇 申请(专利权)人: 无锡城市云计算中心有限公司
主分类号: G06F12/08 分类号: G06F12/08
代理公司: 北京安博达知识产权代理有限公司 11271 代理人: 徐国文
地址: 214135 江苏省无锡市*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 文件系统 中元 数据 缓存 管理 方法
【说明书】:

技术领域

发明涉及分布式文件系统中高效的元数据缓存管理机制,具体来,涉及一种分布式文件系统中高效的元数据缓存管理方法。

背景技术

在分布式文件系统中,元数据服务器是整个系统的中枢,它担负着管理整个文件系统所有管理数据的任务,在客户端元数据操作比较密集的应用中,元数据服务器的服务能力是至关重要的,其吞吐量直接决定了文件系统支持的业务响应的速率。

在现实元数据服务器中,制约其服务能力的因素有很多,但总的来说可以分为以下几类:第一,IO的压力,如磁盘带宽和网络带宽的不足;第二,并发处理能力,主要体现在多任务并发时,由于互斥或同步而消耗不必要的等待时间;第三,是对于CPU一二级快速缓存的污染,如大量的内存拷贝或多核CPU之间的CPU缓存同步。

Slab是Linux操作系统的一种内存分配机制。与传统的内存管理模式相比,slab缓存分配器提供了很多优点。首先,内核通常依赖于对小对象的分配,它们会在系统生命周期内进行无数次分配。slab缓存分配器通过对类似大小的对象进行缓存而提供这种功能,从而避免了常见的碎片问题。slab分配器还支持通用对象的初始化,从而避免了为同一目而对一个对象重复进行初始化。最后,slab分配器还可以支持硬件缓存对齐和着色,这允许不同缓存中的对象占用相同的缓存行,从而提高缓存的利用率并获得更好的性能。

发明内容

本发明旨在公开一种分布式文件系统中高效的元数据缓存管理方法,该方法通过多种策略来优化元数据缓存的管理,尽可能减少由于软件的使用方式不合理而照成内存访问效率的低下,以及并发导致的CPU闲置,从而使得元数据服务器能够充分地利用内存和CPU等硬件资源,提供尽可能高的服务能力。

一种分布式文件系统中元数据缓存管理的方法,采用slab技术管理内存。

优选的,所述内存在申请时包括定长结构和变长结构。

优选的,所述定长结构通过slab技术通过mmap一次性向系统分配内存来管理,分配的内存容纳了需要数量的不同类型的定长结构。

优选的,所述变成结构通过预创建slab来管理,所述slab最小为可容纳的最小变长结构,并以2的阶乘递增,最大为可容纳的最大变长结构。

优选的,所述变长结构在使用时,将请求的内存落在slab集合中大小与其最接近的slab。

优选的,所述slab内部,将大块内存拆分为小单元时,起始地址与CPU的cacheline大小对齐。

优选的,所述每个slab,为每个线程配备一个私有缓存,用于存储该线程操作的内存单元。

优选的,所述线程需要进行内存分配和释放时,先操作私有缓存,如果私有缓存内的内存单元能够满足需求,则不需要对共有的内存块进行操作。

优选的,所述每个slab,根据每个线程内存分配释放的统计量,动态调整私有缓存的大小,使用slab频率高的线程配备的私有缓存相对较大,使用slab频率低的线程配备的私有缓存相对较小。

优选的,所述slab在各个线程的私有缓存之间进行均衡,将释放内存较多的线程私有cache中的内存单元,直接搬移到申请需求较多的线程私有缓存。

具体实施方式

在元数据服务器中,常用的内存结构分为两类:第一类是定长的结构,这类内存结构通常常驻内存,系统会频繁的申请、释放和访问此类内存结构,如索引节点、目录项、消息结构等;第二类是变长结构,该类内存结构通常是在系统运转过程中分配的临时内存单元。

对于服务器模型,通常会引入集中处理的方法,以减少并发带来的性能下降。因此,服务器的内存使用还有一个特性,就是通常分配内存和释放内存的线程是不同的,这就大大增加了内存分配和释放的并发压力,制约了系统的整体性能。

(1)对于定长结构,引入slab技术进行管理,即通过mmap一次性向系统分配大块内存,该大块内存能够容纳若干需要的定长结构,通过自己的管理结构进行管理,这样以来,就减少了向系统申请释放内存的频度,降低了并发性。同时,由于不同类型的定长结构有自己的slab,因此不同线程访问时,只需在各自slab内存进行并发控制,不会影响到其他的slab。

(2)对于变长的内存结构,预创建一批slab,大小以2的阶乘递增。在使用时,将请求落在与slab集合中大小与之最接近的slab即可。这样以来,随机大小的内存分配并发度也被大大降低。

(3)slab内部,将大块内存拆分为小单元时,起始地址与CPU的cacheline大小对齐,减少对于CPU缓存的污染。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡城市云计算中心有限公司,未经无锡城市云计算中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110326472.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top