售前咨询
技术支持
渠道合作

API – 浅谈分布式文件系统MogileFS(5)

Client.pm
MogileFS::Utils模块将Client.pm的api封装了起来

实例分析一【文件下载】

客户端上执行如下命令:(下载key为speach_of_dependence02的文件)

通过抓包发现有如下流程:

mogilefs-05

Master查询db的语句如下:

由于系统内devid不允许重复,于是devid隐含了hostid,由此Master根据mem中的数据能够构造出path。
Storage node上通过http来提供文件的读写服务。Client根据获得的path来GET文件。

实例分析二【文件上传】

客户端上执行如下命令:(下载key为speach_of_dependence02的文件)

通过抓包发现有如下流程:

Storage node上通过http来提供文件的读写服务。Client根据获得的path来PUT文件。

FAQ

1. Moglistkeys是怎么查询到数据库的?
—-请求发送给tracker,tracker查询database,包装结果给client
2. Mogstored是怎么存储文件的?
—-client根据tracker给出的path PUT文件到storage node
3. 如何保证可靠性?可恢复性?
—-通过class的count属性保证文件在系统的冗余
4. File与class的关系?
—-class是应用在file上的一组属性集合

缺陷

 MogileFS是根据http来提供文件读写服务的,读写的速率取决于http的吞吐量;
 如果Tracker与storage node安装包分开发布,部署将更加容易;

学习感悟

1. Brad Fitzpatrick说了他不断的在写基础设施,这就是全力降低系统内各模块的耦合度嘛,各模块的复杂度降低了,性能也上来了,维护也简易了;
2. 避免重复造轮子,系统用http的webDAV实现了文件的读写操作,说白了,这个分布式文件系统就是一个分布式http server集群;

 

 

文章转载来自:ttlsa.com

上一篇:

下一篇:

相关文章