【问题标题】:Does couchbase persist data?couchbase 是否持久化数据?
【发布时间】:2017-08-07 22:56:20
【问题描述】:

我计划将数据存储到基于沙发的集群中。

我想知道如果我的沙发底座在以下情况下发生故障会发生什么: [考虑没有活动的交易发生]

  1. 集群中的一个节点宕机了。(我的假设是在节点修复并启动之后,它会与其他节点同步,并且数据会在那里)。另外,同步后会不会有数据丢失?
  2. 集群出现故障并已修复并重新启动。

请让我知道上述场景的数据持久性类比。

【问题讨论】:

  • 我不确定如果数据库不保存数据会有什么好处...

标签: couchbase spring-data-couchbase couchbase-java-api


【解决方案1】:

是的,Couchbase 将数据持久化到磁盘。它将更改操作写入数据服务节点上的仅附加文件。

对于您的两种情况,数据丢失的可能性不大,因为没有活动事务。

如果节点发生故障,可能会发生数据丢失

  • 将更改持久保存到磁盘或

  • 如果存储桶支持副本,则在完成到另一个节点的复制之前。

示例:带复制的三节点集群

考虑一个三节点 Couchbase 集群和一个桶,每个文档都有一个副本。这意味着单个文档将在两个单独的节点上存储一个副本,称为活动副本和副本副本。 Couchbase 将在节点之间公平地分片文档。

  1. 当一个节点出现故障时,大约三分之一的活动副本和副本副本变得不可用。

    A.如果添加了一个全新的节点并重新平衡了集群,则新节点将具有与旧节点相同的活动副本和副本副本。如果节点失败时复制不完整,则会发生数据丢失。

    B.如果节点故障转移,则故障节点上活动文档的副本将变为活动状态。如果节点失败时复制不完整,则会发生数据丢失。

    C.如果故障节点重新加入集群,它可以重用其现有数据,因此唯一的数据丢失是由于未能将更改写入磁盘。

  2. 当集群宕机时,如果出现磁盘故障,可能会导致数据丢失。

【讨论】:

  • @Flimzy,Couchbase 5.0 Beta 有 Ephemeral Buckets 不使用磁盘存储:“这些是 Couchbase 存储桶的替代品,可在不需要持久性时使用:例如,当重复磁盘-访问涉及太多开销。这可以实现高度一致的内存性能,而不会出现基于磁盘的波动。它还允许更快的节点重新平衡和重启。”
  • 谢谢杰夫。所以除了磁盘故障之外,它很好用。我的用例是使用 couchbase 作为缓存,因此我想知道持久性机制。感谢您的回答。 @Flimzy,我一定会查看有关临时存储桶的文档。
猜你喜欢
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多