当应用程序处理由NoSQL创建的大量非结构化数据时,保持运行的稳定性与有效性是十分重要的。用户在决定持久栈(persistence stack)的主要架构时,了解每个数据库之间的特点与细微差别也非常重要。
接下来,笔者将展示NoSQL数据库之间的一些比较,主要集中在Cassandra、HBase与MongoDB在处理故障时的差别。
Cassandra
Cassandra保证了“写”操作的高效性,但是它从错误中恢复数据则需要相当长的时间。因为Cassandra会识别所有需要恢复的数据,然后恢复每个数据最新的版本。并且由于它会在数据恢复过程中响应添加结点的请求,因此很有可能返回错误的结果。如果不能提高数据一致性水平,那么它将不能被用于需要“读处理”(read processing)服务。
HBase
由于HBase的结构问题,可能有多种因素导致它产生错误。但是与Cassandra必须从错误中恢复数据不同,HBase只有在HDFS(Hadoop Distributed File System - Hadoop分布式文件系统)中产生错误时才需要恢复,这会使HBase产生一个短暂的故障时间。在HDFS故障期间,HBase所产生的故障时间显得并不长。
MongoDB
MongoDB则提供一种称为“出错时自动备份(failover)”的技术,并且也会产生一个短暂的故障时间。不过它的异步复制方法可能会导致在自动备份后部分数据的丢失。
本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/753991,如需转载请自行联系原作者