【发布时间】:2021-09-21 11:27:48
【问题描述】:
我想重新启动我的 Scylla 数据库集群。但我不想丢失任何数据。
如果我一个接一个地重启,我会丢失任何数据吗?
【问题讨论】:
标签: scylla
我想重新启动我的 Scylla 数据库集群。但我不想丢失任何数据。
如果我一个接一个地重启,我会丢失任何数据吗?
【问题讨论】:
标签: scylla
不,如果您进行滚动重启,您不会丢失数据。 Scylla 保持数据在多个节点(通常是 3 个或更多)之间复制
根据您的复制因子 (RF) 和一致性级别 (CL),您可能会在重新启动期间看到读取或写入操作失败。在此处查看交互式计算https://docs.scylladb.com/getting-started/consistency/#consistency-level-calculator
【讨论】:
如果“重新启动节点”仅涉及重新启动 Scylla 或重新启动运行它的内核,那么您是安全的:Scylla 是一个分布式数据库,旨在支持持久性和可用性,即使节点暂时从网络中消失也是如此.当一个节点暂时关闭时,它的所有数据仍然可供读取(从其他两个副本),并且写入继续正常工作,并最终在它最终出现时复制到关闭节点(使用“提示切换”和/或“修复”机制)。
但是,如果“重新启动节点”意味着更具破坏性 - 将其替换为具有空存储空间的全新节点,例如在某些节点具有临时存储的云设置中。在这种情况下,您必须更加小心:如果节点的数据丢失,我们还有两个副本,并且数据库继续可用,但是您应该告诉集群将节点丢失的数据“流式传输”回节点 - 在继续对其他节点执行此破坏性重启之前。如果你的RF=3,同时销毁三个节点,肯定会丢失数据。
【讨论】: