Cassandra system.hints表为空,即使其中一个节点已关闭

Cassandra system.hints表为空,即使其中一个节点已关闭,cassandra,cqlsh,Cassandra,Cqlsh,我正在academy.datasax.com学习卡桑德拉。我正在本地计算机上尝试复制和一致性演示。RF=3,一致性=1 当我的Node3关闭并且我正在使用update命令更新我的表时,SYSTEM.HINTS表应该存储Node3的提示,但它总是空的 我是否需要对配置进行任何更改,以使提示生效,或者默认设置正常 surjanrawat$ ccm node1 nodetool getendpoints mykeyspace mytable 1 127.0.0.3 127.0.0.4 127.0.0.

我正在academy.datasax.com学习卡桑德拉。我正在本地计算机上尝试复制和一致性演示。RF=3,一致性=1

当我的Node3关闭并且我正在使用update命令更新我的表时,SYSTEM.HINTS表应该存储Node3的提示,但它总是空的

我是否需要对配置进行任何更改,以使提示生效,或者默认设置正常

surjanrawat$ ccm node1 nodetool getendpoints mykeyspace mytable 1
127.0.0.3
127.0.0.4
127.0.0.5

surjanrawat$ ccm status
Cluster: 'mycluster'
--------------------
node1: UP
node3: DOWN
node2: UP
node5: UP
node4: UP

cqlsh:mykeyspace> select * from system.hints ;

 target_id | hint_id | message_version | mutation
-----------+---------+-----------------+----------

(0 rows)

为了理解为什么没有写任何提示,你需要很好地掌握如何写

复制系数2表示每行有两个副本,其中 副本位于其他节点上。所有副本都同等重要;那里 没有主副本或主副本


如果集群中的复制因子为3和5个节点,则可能会丢失另一个节点,并且仍然无法存储提示,因为您的数据复制策略仍然有效。尝试杀死另外两个节点,然后检查提示表。

为了理解为什么没有编写提示,您需要掌握如何编写提示

复制系数2表示每行有两个副本,其中 副本位于其他节点上。所有副本都同等重要;那里 没有主副本或主副本


如果集群中的复制因子为3和5个节点,则可能会丢失另一个节点,并且仍然无法存储提示,因为您的数据复制策略仍然有效。尝试杀死另外两个节点,然后检查提示表。

您是否使用完全相同版本的Cassandra创建集群?自版本3+以来,提示存储在协调器的本地文件系统中。我问这个问题是因为在Datastax演示过程中发生了完全相同的事情,我使用了3.0.3而不是2.1.5,我重播了步骤,但使用了2.1.5和表中的提示,正如预期的那样

您是否使用了完全相同版本的Cassandra来创建集群?自版本3+以来,提示存储在协调器的本地文件系统中。我问这个问题是因为在Datastax演示过程中发生了完全相同的事情,我使用了3.0.3而不是2.1.5,我重播了步骤,但使用了2.1.5和表中的提示,正如预期的那样

当我遇到同样的问题时,我看到了这篇文章。最新版本的cassandra不会将提示存储在system.hints表中。我使用的是cassandra 3.9,提示存储在文件系统中

它在cassandra.yaml文件中配置

# Directory where Cassandra should store hints.
# If not set, the default directory is $CASSANDRA_HOME/data/hints.
# hints_directory: /var/lib/cassandra/hints
在我的例子中,我正在使用ccm,并且我能够找到

${user_home}/.ccm/mycluster/node1/hints 

其中mycluster是我的群集名称,node1是我的节点名称。希望这对某人有所帮助。

当我遇到同样的问题时,我看到了这篇文章。最新版本的cassandra不会将提示存储在system.hints表中。我使用的是cassandra 3.9,提示存储在文件系统中

它在cassandra.yaml文件中配置

# Directory where Cassandra should store hints.
# If not set, the default directory is $CASSANDRA_HOME/data/hints.
# hints_directory: /var/lib/cassandra/hints
在我的例子中,我正在使用ccm,并且我能够找到

${user_home}/.ccm/mycluster/node1/hints 

其中mycluster是我的群集名称,node1是我的节点名称。希望这对其他人有所帮助。

它将使用HH来确保所有副本的最终一致性。任何关闭的复制副本和协调器都将创建一个HH。它将使用HH来确保所有复制副本的最终一致性。任何停机副本和协调器都将创建一个HH。如果RF=3和5个节点,停机节点更可能不是变异分区的副本。您是否尝试过对不同分区进行多个更新?如果要验证功能,将RF增加到相等的节点数将确保down node是一个副本。RF=3和5节点时,down node更可能不是变异分区的副本。您是否尝试过对不同分区进行多个更新?如果要验证功能,将RF增加到相等的节点数将确保下行节点是一个副本。在这种情况下,我们是否仍然可以在coordinator中检查提示?在这种情况下,我们是否仍然可以在coordinator中检查提示?