Cassandra system.hints table is empty even when the one of the node is down

我是研究僧i 提交于 2019-12-13 01:43:26

问题


I am learning Cassandra from academy.datastax.com. I am trying the Replication and Consistency demo on local machine. RF = 3 and Consistency = 1.

When my Node3 is down and I am updating my table using update command, the SYSTEM.HINTS table is expected to store hint for node3 but it is always empty.

Do I need to make any configurational changes for hints to work or the defaults are ok?

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)

回答1:


Did you use the exact same version of Cassandra to create the cluster? Since version 3+ the hints are stored in the local filesystem of the coordinator. I ask this because the exact same thing happened to me during that Datastax demo (I used 3.0.3 instead of 2.1.5) I replayed the steps but with 2.1.5 and the hints where there in the table just as expected.




回答2:


Came across this post as I ran into the same issue. Latest versions of cassandra don't store the hints in system.hints table. I am using cassandra 3.9 and the hints are stored in the file system.

It is configured in cassandra.yaml file.

# Directory where Cassandra should store hints.
# If not set, the default directory is $CASSANDRA_HOME/data/hints.
# hints_directory: /var/lib/cassandra/hints

In my case I was using ccm and I was able to find the hints at

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

where mycluster is my cluster name and node1 is my node name. Hope this helps someone.




回答3:


In order to understand why no hints are being written you need a good grasp on how Cassandra replicates data.

A replication factor of 2 means two copies of each row, where each copy is on a different node. All replicas are equally important; there is no primary or master replica.

With a replication factor of 3 and 5 nodes in the cluster you could lose another node and still not store hints because your data replication strategy is still valid. Try killing two more nodes and then check the hints table.



来源:https://stackoverflow.com/questions/35325479/cassandra-system-hints-table-is-empty-even-when-the-one-of-the-node-is-down

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!