无冲突复制数据类型(CRDTs)详解
1. 数据压缩与CRDTs概述
在数据存储与处理中,数据压缩是一个重要的环节。当查询速率大幅提高,如达到每天每存储GiB有256个GET请求时,为了避免解码时间占据过多成本,需要缩短块大小。假设每个GET请求针对不同的块,这样的查询速率和块大小意味着每天大约有1.5%的数据包被解码,此时解码吞吐量成为关键因素。在这种情况下,RLZ的字典内存优势得以体现,它结合了快速解码和出色的压缩效果,提供了最佳的总保留成本(TRC)。
对于不同的存储需求,有不同的压缩方案可供选择:
- 若保留期较短,zlib是最经济的选择,且随着查询速率的增加,应使用更小的块大小。
- 若查询速率较低,且内存相对于二级存储成本较高,则应优先选择xz。
- 若查询速率较高,和/或内存与磁盘成本比适中,则应采用RLZ风格的方法。
无冲突复制数据类型(CRDT)是一种抽象数据类型,具有明确定义的接口,旨在在多个进程中进行复制,并具有以下特性:
- 任何副本都可以在不与其他副本协调的情况下进行修改。
- 当任意两个副本接收到相同的更新集时,它们会通过采用合理的数学规则来保证状态收敛,从而确定性地达到相同的状态。
互联网规模的分布式系统通常会在多个地理位置复制数据,以提供低延迟和高可用性,即使在出现故障和网络问题时也能如此。为了实现这一目标,这些系统必须允许在任何副本上接受更新,并将这些更新异步传播到其他副本。这种方法允许副本暂时出现差异,因此需要一种机制来将并发更新合并为一个共同的状态,而CRDTs就提供了一种解决此问题的原则性方法。
超级会员免费看
订阅专栏 解锁全文
2266

被折叠的 条评论
为什么被折叠?



