Cassandra データベースのほとんどのデータが失われました。これは単なるテスト データでしたが、何が起こっているのかを理解し、実際のデータでそうならないようにする必要があります。
Windows Server で cassandra 1.1 をサービスとして実行しています。データベースには、ac# アプリケーションからのデータが供給されます。スクリプトが終了し、cassandra サービスを再開しました。その後、過去 20 時間ほどのデータはすべて失われました。古いデータが残っていました。
問題のデータがディスクにまったく書き込まれていない可能性があります。ただし、データベースは問題の 20 時間の間にクエリに正しく応答したため、データは少なくともメモリ内にあったはずです。
設定は、保存場所などを除いてデフォルトの設定と同じです。フラッシング戦略は
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000
何を試すべきか、ログファイルや構成で何を探すべきかなど、ヒントをいただければ幸いです。
編集:もう少し実験した後、次のことを再現できるようになりました:
- 新しいデータを挿入 - OK
- 新しいデータのクエリ - わかりました
- データベースを停止して再起動します - すべての新しいデータがなくなりました:((古いデータはまだそこにあります)
- ログファイルには何もありません。「ログの再生が完了しました。再生されたミューテーションはありません」
Edit2:新鮮な空のデータベースから始めて、すべてが正常に動作するようになりました (もちろん同じ構成)。壊れたデータベースのバックアップを使用すると、上記の問題を再度再現できます。Cassandra でバグを発見しましたか? どうやら私のデータベースは、コミット ログが書き込まれていないか、正しく再生されていない状態にあります。