GFS中的数据完整性校验

GFS chunk 64M  每个chunk 以64kb的块进行划分 ,每块对应一个32位的校验和,放到chunkserver的内存中。

每个chunkserver必须通过维护一个检验和来独立的验证它自己的拷贝的完整性。


为何64M?

1.减少master存储的元数据信息,因为元数据要放到内存以提供快速访问。例如,GFS系统中每个chunk大小为64MB,默认存储3份,每个chunk的元数据小于64字节。那么1PB数据的chunk元信息大小不超过1PB * 3 / 64MB * 64 = 3GB。

2.减少客户端与master的交互。

3.用户可能在一个块上执行操作,客户端与chunkserver保存较长的TCP连接,减少网络带宽。


64kb?

好计算,64M/64kb(这里不清楚)


文件读、 append的校验过程:

1.读文件

客户端向chunkserver发送读数据请求,chunkserver先通过其存储的校验和判断数据是否损坏,如果损坏,则向master报告,master将发出指令将其他节点的正确副本替换掉出错的副本;否则,chunkserver给用户返回正确的数据。

2.append

该操作主要存在数据覆盖的错误,所以在进行append时只增加最后一块的校验值。对于跨chunk边界的记录,边界前后的块都需要校验。

参考:

http://duanple.blog.163.com/blog/static/7097176720109151211526/


   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值