CouchDB';s仅限碰撞的设计是为了耐用性,为什么?

CouchDB';s仅限碰撞的设计是为了耐用性,为什么?,couchdb,durability,Couchdb,Durability,当我研究couchDB的耐用性时,我发现couchDB使用仅崩溃设计来获得耐用性。但我不知道仅崩溃与耐用性之间的关系。做相反的事情意味着尝试变得聪明并添加错误恢复代码。这要求您正确识别错误,并正确地假设恢复算法。恢复过程的每一部分都可能引入bug。您可能会认为错误属于某种类型,而实际上是另一种类型,或者在您已经进行恢复时,可能会发生新的意外错误 错误恢复还意味着不仅要尝试重做失败的事务。您还必须找到原始错误,这可能是由于某些意外的程序或硬件状态,并修复该状态。否则,同样的错误可能再次发生 崩溃只

当我研究couchDB的耐用性时,我发现couchDB使用仅崩溃设计来获得耐用性。但我不知道仅崩溃与耐用性之间的关系。

做相反的事情意味着尝试变得聪明并添加错误恢复代码。这要求您正确识别错误,并正确地假设恢复算法。恢复过程的每一部分都可能引入bug。您可能会认为错误属于某种类型,而实际上是另一种类型,或者在您已经进行恢复时,可能会发生新的意外错误

错误恢复还意味着不仅要尝试重做失败的事务。您还必须找到原始错误,这可能是由于某些意外的程序或硬件状态,并修复该状态。否则,同样的错误可能再次发生


崩溃只会降低出现错误的概率,您不需要查找出现错误的所有边缘情况,您的系统管理员可以很容易地收到错误通知(可能是硬件错误!)。考虑到这一点,在某些情况下,崩溃只是一个合理的软件设计原则。至少它使保证数据完整性变得更容易。

相反的做法意味着要聪明一些,添加错误恢复代码。这要求您正确识别错误,并正确地假设恢复算法。恢复过程的每一部分都可能引入bug。您可能会认为错误属于某种类型,而实际上是另一种类型,或者在您已经进行恢复时,可能会发生新的意外错误

错误恢复还意味着不仅要尝试重做失败的事务。您还必须找到原始错误,这可能是由于某些意外的程序或硬件状态,并修复该状态。否则,同样的错误可能再次发生

崩溃只会降低出现错误的概率,您不需要查找出现错误的所有边缘情况,您的系统管理员可以很容易地收到错误通知(可能是硬件错误!)。考虑到这一点,在某些情况下,崩溃只是一个合理的软件设计原则。至少通过阅读CouchDB的

CouchDB文件布局和提交系统具有所有原子一致性隔离持久性(ACID)属性。在磁盘上,CouchDB从不覆盖提交的数据或相关结构,确保数据库文件始终处于一致状态。这是一种“仅崩溃”的设计,CouchDB服务器不经过关闭过程,只是终止

持久性是由数据库始终处于一致状态这一事实给出的,而持久性是由数据库的结构仅为append(
CouchDB从不覆盖提交的数据或关联的结构)这一事实给出的。这使得错误处理非常容易:如果出现错误,它可能会立即崩溃

我不认为是“仅限碰撞”提供了耐久性。我认为耐久性允许使用“仅碰撞”。

通过阅读CouchDB的

CouchDB文件布局和提交系统具有所有原子一致隔离持久(ACID)属性。在磁盘上,CouchDB从不覆盖提交的数据或关联结构,确保数据库文件始终处于一致状态。这是“仅崩溃”在CouchDB服务器不经过关闭过程的设计中,它只是被终止

持久性是由数据库始终处于一致状态这一事实给出的,而持久性是由数据库的结构仅为append(
CouchDB从不覆盖提交的数据或关联的结构)这一事实给出的。这使得错误处理非常容易:如果出现错误,它可能会立即崩溃

我不认为是“仅限碰撞”赋予了耐久性。我认为耐久性允许使用“仅限碰撞”