【问题标题】:What are the cases which can cause data conflict at the row level in Cassandra?哪些情况会导致 Cassandra 中的行级数据冲突?
【发布时间】:2017-08-03 11:24:31
【问题描述】:

Cassandra 的每一行都有一个主副本,并且根据集群配置在多个节点上进行复制。我想了解可能导致行级别数据冲突的情况,尤其是当每一行只有一个主副本时。一些例子会很有帮助。

【问题讨论】:

  • 在写入行方面没有主副本区别。对主键进行散列确定具有主要责任的节点,然后将数据同时发送到所有节点。根据一致性级别,在 1、quorum 或所有节点都已回复后将响应发送给客户端。

标签: cassandra nosql


【解决方案1】:

Cassandra 中没有主副本的概念。根据您的主键和散列算法(随机或 mumur3)将每一行散列成一个令牌,并且负责该令牌的节点获取数据的第一个副本。根据您的复制因子(副本数),环中的其他节点会获得其他副本。

如果您将 RF 设置为 1,则包含该数据的节点可能会关闭(损坏)并且您将无法检索该数据。作为最佳实践,您应该在生产环境中从 RF=3 开始,然后根据您的需要更改 RF。 RF 为 1 可用于测试目的。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多