[姚文辉课程笔记]大规模分布式存储系统的数据正确性、数据可靠性、数据均衡、垃圾回收

【数据正确性 checksum】

在集群中网络、内存、磁盘和软件都有可能导致数据错误,那么在分布式存储系统中如何保证海量数据中没有任何数据错误呢?
(1)数据应该给全程保护,否则任何一个环节出现问题导致数据错误未被检查到,都可能会导致数据出错。
(2)被保护的数据至少应该具有数据、数据长度和CRC校验值这样的三元组,而且在任何后续的处理中,都应该先对数据进行处理后,再校验这个3元组的一致性,来保证刚被处理过的数据是正确的。

在数据进入系统前,有checksum保护。否则数据在系统内部传输,则可能出现错误。

【数据可靠性 Replication】

(1)当机器/磁盘出现异常,通过其它副本快速恢复。
(2)充分利用多台机器的复制带宽。
(3)实际系统中,应考虑复制的优先级以及复制的流量控制。
通常会按照数据的剩余拷贝来计算复制的优先级。
剩余拷贝数量越少的数据应该优先被复制。
优先级高的数据流量复制也不能超过复制流量限制。

【数据均衡 Rebalance】

(1)当有新的机器/磁盘上线时,迁移数据保证负载均衡。
(2)充分利用多台机器的复制带宽。
(3)实际中,也需要考虑控制因为负载均衡而导致复制优先级和流量控制。

【垃圾回收 Garbage collection】

两种情况垃圾:
(1)用户数据删除,遗留在系统中的垃圾。脏数据,异步逐步回收。
(2)用户写入过程异常,或系统复制数据异常,导致多余数据产生。

0

Leave a Reply

Your email address will not be published.