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:分布式 存储

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