技术教程

NoSQL数据库:从故障中恢复数据的原理

   【IT168 技术】当应用程序处理由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)”的技术,并且也会产生一个短暂的故障时间。不过它的异步复制方法可能会导致在自动备份后部分数据的丢失。

相关文章