【发布时间】:2015-07-24 00:36:54
【问题描述】:
在 Cassandra 的同一数据中心中的不同节点之间遇到同步问题。使用 NetworkTopology 将密钥空间设置为 3 的复制因子,并且在 DC 中有 3 个节点。有效地确保每个节点都有数据的副本。节点工具状态运行时,显示DC中的三个节点都拥有100%的数据。
然而,该键空间中的 applied_migrations 列族不同步。这很奇怪,因为键空间中只有一个列族受到影响。所有其他列族在三个节点之间完全复制。测试是通过计算键空间中每个列族的行数来完成的。
keyspace_name | durable_writes | strategy_class | strategy_options
--------------+----------------+------------------------------------------------------+----------------------------
core_service | True | org.apache.cassandra.locator.NetworkTopologyStrategy | {"DC_DATA_1":"3"}
keyspace: core_service
Datacenter: DC_DATA_1
=====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN host_ip_address_1_DC_DATA_1 3.75 MB 256 100.0% 3851106b RAC1
UN host_ip_address_2_DC_DATA_1 3.72 MB 256 100.0% d1201142 RAC1
UN host_ip_address_3_DC_DATA_1 3.72 MB 256 100.0% 81625495 RAC1
Datacenter: DC_OPSCENTER_1
==========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN host_ip_address_4_DC_OPSCENTER_1 631.31 MB 256 0.0% 39e4f8af RAC1
查询:select count(*) from core_service.applied_migrations;
host_ip_address_1_DC_DATA_1 core_service applied_migrations
count
-------
1
(1 rows)
host_ip_address_2_DC_DATA_1 core_service applied_migrations
count
-------
2
(1 rows)
host_ip_address_3_DC_DATA_1 core_service applied_migrations
count
-------
2
(1 rows)
host_ip_address_4_DC_OPSCENTER_1 core_service applied_migrations
count
-------
2
(1 rows)
收到类似错误,如下面的问题所述。因为所有数据行都不可用,所以迁移脚本会失败,因为它正在尝试创建现有表: https://github.com/comeara/pillar/issues/25
【问题讨论】: