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

分布式存储系统的实现

 2009-06-03 12:17:01 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姇閻忔氨鈧凹鍓熷娲垂椤曞懎鍓伴梺閫炲苯澧紒澶婄秺瀵濡歌閸嬫捇妫冨☉娆忔殘闂佷紮缍€娴滎剟鍩€椤掑倹鏆柛瀣躬瀹曚即寮借閺嗭箓鏌ㄩ悤鍌涘
核心提示:敬惜人工智能系统平台希望能做成一个开放运营的平台,所以在数据存储方面除了可靠性、容错性以外对可用性的要求自然也要认真考虑,分布式存储系统的实现,最后选择的实现是自行开发了一个分布式存储系统,一.分布式缓存的实现为了简化用户端的使用,Cache_Server和Cache_Client都实现了一个Hash树,用于缓存常用数

敬惜人工智能系统平台希望能做成一个开放运营的平台,所以在数据存储方面除了可靠性、容错性以外对可用性的要求自然也要认真考虑。最后选择的实现是自行开发了一个分布式存储系统。

一.分布式缓存的实现

为了简化用户端的使用,提供了一个分布式缓存系统来提供对此分布式存储系统的访问接口以及本地数据缓冲以降低网络压力。

分布式缓存使用自行开发的带流控的组播UDP消息传递系统做底层的数据传送。包括Sever和Client两个组件,Cache_Server运行在FS(文件服务器)主机上,Cache_Client运行在提供用户访问接口的UA(用户代理)主机或其它需要数据服务的主机上。Cache服务定义了11个消息:Request, Rename, Update, Lock, Freeze, RequestFile, TransFile, FileTransMessage(包括请求与传送), FSLive, Backup。其中Request, Rename, Update用于Cache_Client向Cache_Server请求数据服务,Lock用于Cach之间的锁操作,Freeze, RequestFile, TransFile, FileTransMessage用于传送文件,FSLive用于Cache_Server向Cache_Client发布当前可用FS的信息,Backup实现数据文件的备份。

其中FileTransMessage消息将启用另外的一个消息传递类使用独立的组播地址进行传送,只由文件发送方与待接收方使用以避免对其它的Cache用户造成干扰。文件本身被划分为8K大小的块进行传递,每个块进行MD5校验。如果是传递数据文件,FS会冻结所有的写操作同时发布Freeze消息并启动一个数据日志来保存所有的写操作,等文件传送完毕再重新导入所有的写操作。为了防止FS在导入数据日志时突然崩溃而引起数据不一致,FS使用了数据时标用于表示数据的新旧程度。

Cache_Server和Cache_Client都实现了一个Hash树,用于缓存常用数据,基于LRU算法进行管理。

1 2 3 4 5  下一页

Tags:分布式 存储

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