WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院服务器存储技术 分布式存储系统的实现 阅读

分布式存储系统的实现

 2009-06-03 12:17:01 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姈椤愮厧鈽夊Ο閿嬬€婚梺褰掑亰閸撴稑鈻斿鑸碘拺闁告稑饪村▓鏃€绻涚仦鍌氬闁崇粯鎹囬獮瀣攽閹邦剚顔傛俊鐐€栧濠氬储瑜忛幉鎾晸閿燂拷
核心提示: 五.数据文件数据文件包括三个文件:字符串文件、目录文件、数据文件,字符串文件主要是考虑到敬惜人工智能系统平台是个提供开放服务的平台,分布式存储系统的实现(4),因此数据名中必须有指示用户名的部分,当用户数据量很大的时候,不足则依次向上一大小的链中进行查找,16 K以上的空间则需要先从32

五.数据文件

数据文件包括三个文件:字符串文件、目录文件、数据文件。字符串文件主要是考虑到敬惜人工智能系统平台是个提供开放服务的平台,因此数据名中必须有指示用户名的部分,当用户数据量很大的时候,目录文件中这部分开销会比较大,而且用户名的长度是变化的,直接保存很麻烦,所以最后参考MS对.net中字符串的处理方式用一个字符串文件统一保存,其它需要使用到该字符串的地方使用一个固定长度的字符串ID号来代表。

目录文件使用固定大小的32字节的块来保存每个数据的访问信息,所有的数据目录都要保存到内存中,所以目录信息占用的内存会极大,因此使用Hash树来进行管理,由于文件读写操作较慢,为了在重负载情况下在目录访问的安全性和目录访问的高并发性之间达成一个平衡使用了1K个锁对象,利用hash码的后10个bit来分散互斥访问的冲突概率。

为了减少在修改数据时因为空间不足引起的空间回收与再分配,在32字节的目录信息块中使用了若干字节来跟踪数据的写、空间分配等操作,并按一定策略进行空间放大的预分配来尽量减少空间的回收与申请。

六.数据文件的空间管理

数据文件按1KBytes为单位进行分配与回收,只包括数据,所有和数据相关的信息,如位置、大小等信息全部定义在目录信息中。

数据空间的管理被划分为32MBytes的大块,每个大块的空间由一个FSM(FileFreeSpaceManager)对象进行管理。FSM只关心本对象所负责的空间中尚未分配出去的空闲空间,并将其按空间大小分别按本大块内位置为顺序拉链,空闲空间链包括1K、2 K、4 K、8 K、16 K 以及32 K组共6条。16 K以下的空间直接从相应大小的链中取第一个即可,不足则依次向上一大小的链中进行查找,16 K以上的空间则需要先从32 K块组中按32 K大小向上取整后分配,剩余部分再加入到相应的空闲空间链中。

上一页  1 2 3 4 5  下一页

Tags:分布式 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接