4

Cassandra にレコードを保存しているときに (保存されているレコードの半分)、ディスクがいっぱいで空き容量がない場合はどうなりますか? 例外がスローされる場合、その例外は何ですか?

2 番目のシナリオは、ディスクがいっぱいのときに新しいキースペースを作成するとどうなるかということです。例外がスローされる場合、その例外は何ですか?

4

3 に答える 3

6

書き込み先のキースペースがresundable_writes=trueまたはfalse(trueがデフォルト)で作成されたかどうかによって異なります。

前者で、commitlogディスクがいっぱいの場合、commitlogへの書き込み中にIOExceptionがスローされ(ただし、応答の一部として返されることはありません)、要求はタイムアウトになります。

後者でデータディスクがいっぱいの場合は、正常に応答します。ただし、ディスクにフラッシュできないmemtableは、ノード全体のRAMが不足して終了するまで、サイズが大きくなり続けます。

2番目のシナリオでは、どのドライブがいっぱいであるかに応じて、commitlogに書き込もうとしたとき、または新しいスキーマをディスクにフラッシュしようとしたときに例外がスローされます。どちらの場合も、リクエストはタイムアウトになります。

今後のCassandra1.2(現在ベータ版)では、このようなケースの処理が改善されています。詳細については、 Cassandra1.2でのディスク障害の処理を参照してください。

于 2012-10-11T22:20:16.860 に答える
1

ディスクがいっぱいになると、実行が停止します。実行を停止するたびに何度も試しました。したがって、クライアント API は接続拒否例外をスローします。

于 2013-01-15T11:28:18.483 に答える