Aliyun Code

首页  >   chuyu / tfs

项目语言:c

创建者:chuyu 创建时间:2011年09月29日

TFS写操作数据流

TFS系统中,nameserver会保证一个文件有多个副本存储于不同的dataserver上以保证冗余。当由于dataserver服务器宕机或由于其他原因退出系统导致某些文件副本数量下降时,nameserver将会调度新的dataserver节点存储文件备份。同样为了保证数据一致性,当写入一个文件时,只有所有参与的dataserver均写入成功时,该操作才算成功。TFS的写操作数据流图如下所示:


客户端首先向nameserver发起写请求,nameserver需要根据dataserver上的可写块,容量和负载加权平均来选择一个可写的block。并且在该block所在的多个dataserver中选择一个作为写入的master,这个选择过程也需要根据dataserver的负载以及当前作为master的次数来计算,使得每个dataserver作为master的机会均等。master一段选定,除非master宕机,不会更换,一旦master宕机,需要在剩余的dataserver中选择新的master。返回一个dataserver列表。
客户端向master dataserver开始数据写入操作。master server将数据传输为其他的dataserver节点,只有当所有dataserver节点写入均成功时,master server才会向nameserver和客户端返回操作成功的信息。

附件

chuyu | 2011-09-29 23:56:35 | tfs-1.4.tar.gz | 902.0 KB
chuyu | 2011-09-29 23:56:35 | tfs-1.3.tar.gz | 704.6 KB
chuyu | 2011-09-29 23:56:35 | tfs-debuginfo-1.4-1.x86_64.rpm | 1019.7 KB
chuyu | 2011-09-29 23:56:35 | tfs-1.3.1.tgz | 679.7 KB
chuyu | 2011-09-29 23:56:35 | tfs-devel-1.4-1.x86_64.rpm | 663.5 KB
chuyu | 2011-09-29 23:56:35 | tfs-devel-1.3-1.x86_64.el5.rpm | 70.9 KB
chuyu | 2011-09-29 23:56:35 | tfs-1.3-1.x86_64.el5.rpm | 1.5 MB
chuyu | 2011-09-29 23:56:35 | TFS_HA.docx | 22.3 KB
chuyu | 2011-09-29 23:56:35 | process.png | 38.2 KB
chuyu | 2011-09-29 23:56:35 | metadata.png | 46.4 KB
chuyu | 2011-09-29 23:56:35 | read.png | 9.1 KB
chuyu | 2011-09-29 23:56:35 | structure.png | 53.3 KB
chuyu | 2011-09-29 23:56:35 | rs100.png | 8.0 KB
chuyu | 2011-09-29 23:56:35 | rs10.png | 9.3 KB
chuyu | 2011-09-29 23:56:35 | write.png | 8.5 KB
chuyu | 2011-09-29 23:56:35 | filename.png | 43.7 KB
chuyu | 2011-09-29 23:56:35 | tfs_read.png | 10.6 KB
chuyu | 2011-09-29 23:56:35 | tfs_read.graphml | 6.4 KB