#摘要
云存储系统的三个指标: 高可靠性,低存储开销,高读写性能。这三个指标是没有办法同时满足的,很多时候需要进行tradeoff。 副本系统和纠删码是两种在存储系统中广泛使用的策略,它们在保证高可靠性的前提下,选择了不同极端的tradeoff。 副本存储开销大,但性能较好;纠删码存储开销低,但性能较差。本文提出了MICS系统,它将一个对象以两种形式存储,一种采用副本,一种采用分片纠删码,不仅如此,还设计了针对这种hyprid结构的精细的读写协议。 在服务使用者的角度,MICS通过PRAM一致性协议保证高可用性。 实验方面,在I/O吞吐率上有所提高,同时在多种真实负载情况下,依然表现出优越的性能,方差非常小。
论文名字:MICS : Mingling Chained Storage Combining Replication and Erasure Coding
疑问:
为什么副本不适合写密集型应用,而纠删码适合?
感觉副本和纠删码在写密集型应用上的性能表现应该是一致的。如果采用三副本以及RS(4,2)编码,那么更新(修改)数据的开销,都需要更新三个块(副本是三个相同的块,纠删码是1个数据块加上两个校验块)。 我认为这个写应该是追加写,如果是追加4个数据块的话,对于副本来说系统需要创建12个数据块才可以满足三副本的要求,而对于RS(4,2)编码,系统只需要创建6个数据块即可,因此更快。
#简介
MICS是对象存储系统,对于每一个数据对象使用两部分进行存储,Master Node存储这个对象的完整副本,而纠删码节点(ECC)存储对象的编码分片。 对于一个数据对象,采用RS( k k k, m m m)编码,那么会生成 k + m k+m k+m个分配, k k