taobao fs 学习心得

来源:互联网 发布:手机淘宝不能申请退款 编辑:程序博客网 时间:2024/05/01 02:55

架构:客户端-主从name server-data servers.

 

name server解析文件名,找到文件的具体存放在哪个data server上面。

 

data server上面有很多block。每个block里面有很多小文件。

 

大量小文件存放在一个固定大小(64M)(可通过参数block_max_size配置)的block文件里面, 对于每个block的索引存放在nameserver的内存中,tfs系统启动的时候,会初始化这些索引信息,这样效率会非常高,相对于数据库索引。

 

每一个block有2份拷贝在另外2个不同的数据服务器上。每个block有一个主块,也有一些扩展块, 扩展块的作用是:当文件大小发生变化,比如增大,但是主块已经空间用完,这个时候我们就需要扩展块了。

 

当往tfs系统写文件的时候,首先我们通过nameserver找到可用的blcok_id, 和data server, 然后往数据服务器写数据,接着拷贝副本到备份数据服务器上, 完成以后报告name server数据写完毕, name server 更新block表信息,并返回成功给客户端。

 

读数据的时候,通过文件名解析出block_id 和 file_id, 根据block_id找到data server地址, 根据block_id, file_id从数据服务器中读取数据给客户端。

 

 

原创粉丝点击