2017-05-27 14 views
0

DockerでCassandraクラスタを使用してヒントハンドオフをエミュレートしようとしています。Cassandraでヒントハンドオフをトレースできません

ヒンティングハンドオフがアクティブである:

[email protected]:/# nodetool statushandoff 
Hinted handoff is running 

鍵空間3の複製因子を有する:

cqlsh> DESCRIBE KEYSPACE imdb; 
CREATE KEYSPACE imdb WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '1'} AND durable_writes = true; 

そして私はトレースをオンにし、新しい行を挿入し、一つのノードをシャットダウン:

cqlsh:imdb> insert into movies_by_actor (actor, movie_id, character, movie_title, salary) values ('TomHanks', uuid(), 'Character', 'Title', 1000); 

Tracing session: e4a2cc20-42ce-11e7-bd49-cf534e0135c6 

activity                                          | timestamp     | source  | source_elapsed | client 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+------------+----------------+----------- 
                                          Execute CQL3 query | 2017-05-27 11:23:22.466000 | 172.13.0.2 |    0 | 127.0.0.1 
Parsing insert into movies_by_actor (actor, movie_id, character, movie_title, salary) values ('TomHanks', uuid(), 'Character', 'Title', 1000); [Native-Transport-Requests-1] | 2017-05-27 11:23:22.467000 | 172.13.0.2 |   364 | 127.0.0.1 
                                  Preparing statement [Native-Transport-Requests-1] | 2017-05-27 11:23:22.467000 | 172.13.0.2 |   727 | 127.0.0.1 
                               Determining replicas for mutation [Native-Transport-Requests-1] | 2017-05-27 11:23:22.468000 | 172.13.0.2 |   1354 | 127.0.0.1 
                         Sending MUTATION message to /172.13.0.3 [MessagingService-Outgoing-/172.13.0.3-Small] | 2017-05-27 11:23:22.468000 | 172.13.0.2 |   1722 | 127.0.0.1 
                         Sending MUTATION message to /172.13.0.6 [MessagingService-Outgoing-/172.13.0.6-Small] | 2017-05-27 11:23:22.468000 | 172.13.0.2 |   1722 | 127.0.0.1 
                          MUTATION message received from /172.13.0.2 [MessagingService-Incoming-/172.13.0.2] | 2017-05-27 11:23:22.469000 | 172.13.0.3 |    30 | 127.0.0.1 
                          MUTATION message received from /172.13.0.2 [MessagingService-Incoming-/172.13.0.2] | 2017-05-27 11:23:22.469000 | 172.13.0.6 |    35 | 127.0.0.1 
                                    Appending to commitlog [MutationStage-1] | 2017-05-27 11:23:22.469000 | 172.13.0.3 |   294 | 127.0.0.1 
                                    Appending to commitlog [MutationStage-1] | 2017-05-27 11:23:22.469000 | 172.13.0.6 |   292 | 127.0.0.1 
                                 Adding to movies_by_actor memtable [MutationStage-1] | 2017-05-27 11:23:22.469000 | 172.13.0.6 |   486 | 127.0.0.1 
                                  Enqueuing response to /172.13.0.2 [MutationStage-1] | 2017-05-27 11:23:22.469000 | 172.13.0.6 |   660 | 127.0.0.1 
                        REQUEST_RESPONSE message received from /172.13.0.3 [MessagingService-Incoming-/172.13.0.3] | 2017-05-27 11:23:22.470000 | 172.13.0.2 |   3659 | 127.0.0.1 
                               Processing response from /172.13.0.3 [RequestResponseStage-2] | 2017-05-27 11:23:22.470000 | 172.13.0.2 |   3820 | 127.0.0.1 
                       Sending REQUEST_RESPONSE message to /172.13.0.2 [MessagingService-Outgoing-/172.13.0.2-Small] | 2017-05-27 11:23:22.472000 | 172.13.0.6 |   3533 | 127.0.0.1 
                        REQUEST_RESPONSE message received from /172.13.0.6 [MessagingService-Incoming-/172.13.0.6] | 2017-05-27 11:23:22.473000 | 172.13.0.2 |    34 | 127.0.0.1 
                               Processing response from /172.13.0.6 [RequestResponseStage-3] | 2017-05-27 11:23:22.473000 | 172.13.0.2 |   523 | 127.0.0.1 
                                          Request complete | 2017-05-27 11:23:22.469919 | 172.13.0.2 |   3919 | 127.0.0.1 

ログからわかるように、コーディネーター・ノード172.13.0.2はリクエストaを処理しますndはノード172.13.0.3172.13.0.6に接続します。私はノード172.13.0.2が3番目のノードが利用できないので、ヒント付きハンドオフを保存すると予想します。私はsystem.hintsテーブルをチェックするときしかし、それが空である:

cqlsh:imdb> select * from system.hints; 

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

(0 rows) 

整合性レベルはONEをデフォルトに設定されています。ヒントを得たハンドオフがどこに保存されているのか誰かが説明できますか?

答えて

1

最新のバージョンのcassandraは、system.hintsテーブルにヒントを保存していません。

ヒントは、cassandra 3.0のフラットファイルに保存されています。カサンドラのバージョン3.0以上を使用している場合、あなたはあなたのcassandra.yamlに2つの値を超えるcassandra.yaml

# Directory where Cassandra should store hints. 
# If not set, the default directory is $CASSANDRA_HOME/data/hints. 
hints_directory: "C:/Program Files/DataStax-DDC/data/hints" 
# How often hints should be flushed from the internal buffers to disk. 
# Will *not* trigger fsync. 
hints_flush_period_in_ms: 10000 

チェックで構成されたヒントディレクトリに見て、その中にヒントを探している必要があります。

Hinted Handoff in cassandra 3.0

関連する問題