2017-03-21 6 views
1

を避けるために何をすべきか、私はのapache-カサンドラ-3.10cassandraはmemtablesをnodetool stopdaemonにフラッシュしますか?そうでない場合は、データの損失

を使用しています、私が代わりに殺す-9 pidのの理解、優雅カサンドラを停止する唯一の方法は、nodetoolのstopdaemonです。

は、しかし、私が知りたいのであればnodetoolのstopdaemonフラッシュmemtablesのデータシャットダウン前 sstables へ。

nodetool stopdaemonを使用してノードを停止すると、フラッシュされないとのデータ損失になります。

また、これについて調べた後、私はDURABLE_WRITESについて読んでいます。耐久性のある書き込みは実際に何をしていますか?

また、DURABLE_WRITESを設定するセクション下datastaxのドキュメントの状態が

参照「SimpleStrategyを使用してキースペースにこの属性を設定しないでください」:私の鍵空間を用いて構成されている場合は何https://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_keyspace_r.html

をシンプルな戦略では、シャットダウン時にデータが消失するのを助けることができる場合には、DURABLE_WRITESのメリットはまだありませんか?

手動でシャットダウンする前に、ノードツールフラッシュを実行していますが、シャットダウン時にデータが失われないように唯一の方法はありますか?

私はhttps://issues.apache.org/jira/browse/CASSANDRA-3564から、シャットダウン時にフラッシュする機能が追加されていないことを確認しました。

はまた https://issues.apache.org/jira/browse/CASSANDRA-12001

意図がnodetoolのstopdaemonを使用してシャットダウンの任意のデータの損失を避けるためにある同じ問題に関するオープンチケットがあります。基本的には、シャットダウンする前にすべてのテーブルをフラッシュして、シンプル戦略を検討してください。

ご協力いただければ幸いです。

ありがとう

答えて

0

カサンドラは非常に堅牢でクラッシュセーフです。あなたがデーモンを殺す/停止しても、データが失われることはありません。しかし、安全なシャットダウンを行うと、カサンドラの起動時間を節約できます。

安全にシャットダウンするには、以下の手順に従ってください:

  1. nodetool disablegossip
  2. nodetoolはカサンドラ2の場合
  3. nodetoolのdisablebinaryを(disablethrift。0以上)
  4. はドレインnodetool

無効ゴシップは倹約とバイナリがクライアントとの通信を停止する無効、他のノードへの通信を停止します。

最後に、ドレインがすべてのテーブルをフラッシュします。

今キルのいずれかによってカサンドラを停止または停止デーモンを

+0

私たちが手動フラッシュ/排水をしないと、カッサンドラはメモリ内のすべてをディスクにフラッシュしないと確信していますか? –

+0

データを書き込むと、Cassandraはコミットログにデータを保存します(高速アクセスのため)。コミットログデータをフラッシュ/ドレインすると、メモリにデータが書き込まれません。そのため、プロセスを終了してもデータは失われません。 –

+0

しかしコミットログとsstableの間にはmemtableがあります。私はmemtableで保持されているデータについて懸念しています。 memtables内のデータはcommitlogでシャドーされていないためです。 memtable_cleanup_thresholdにまだ達しておらず、ノードをシャットダウンしている場合、memtableにフラッシュされていないデータは失われます。私がフラッシュ/ドレインを行うと、コミットログのみが返されます。 –

0

nodetool drain十分でしょう。 Datastaxドキュメントから
についてnodeool drain

は、ディスク上のSSTablesへのノードからすべてのmemtablesをフラッシュします。 Cassandraは、クライアントや他のノードからの接続の受信を停止します。 nodetool drainを実行した後、Cassandraを再起動する必要があります。
リンク:nodetool drain

次にあなたがnodetool stopdaemonを殺すか、実行することができます。

+0

ドキュメントでは、「通常、ノードを新しいバージョンのCassandraにアップグレードする前にこのコマンドを使用します」と記載されています。だから、なぜノデトール排水を使用するのですか? –

関連する問題