前段时间看到CSDN的首页上有一些关于Cassandra的消息和宣传,有一点看到大家没有提及的是Cassandra对于consistency的处理.以至于有的朋友认为目前的Cassandra在银行金融信息领域有很大的潜在应用.我觉得这里可能有一些认识上的误区.
和HBase的strong consistency不同,Cassandra采取的是weak consistency策略.在CAP 的选择上,HBase优先考虑的是 A (availability)和 P (tolerance to network partition); 而Cassandra优先考虑的是 C (consistency) 和 P (tolearance to network partition). 关于更多的CAP的问题,请参照[1].
Cassandra的weak consistency并不意味着分布式数据库不能提供consistent的数据操作,在Cassandra中可以设置Consistency Level 来确保consistent的操作.但是consistency越高,性能就越差.但无论你选择何种 Consistency Level ,一段时间(inconsistency window)之后,所有的数据备份都将产生相同的结果,这也就是Cassandra所谓的Eventural Consistent Model.只是这个时间可长可短.时间越长,性能也就越好,时间越短,数据库的性能也就越差.这里所说的性能主要指的是availability和data throughput.