1

db-xx.logがジャーナルファイルで、db.redoが参照ファイルであることを知っていますか?

db-xx.logは、まだ消費されていないメッセージを格納します。これらのメッセージは、消費された後、db-xx.logから削除されます。db.redoは、メッセージID(db-xx.logに保管されている)の参照をメッセージIDで保管します。

  1. しかし、db.dataとdb.freeとは何ですか?
  2. それらの機能は何ですか?

私の理解では、ブローカーは最初にメッセージをキャッシュ(揮発性メモリ)に保存し、チェックポイントまたはキャッシュサイズがいっぱいになると、それらのメッセージはdb-xx.logに移動(追加)されます。

  1. あれは正しいですか?

ありがとう

4

2 に答える 2

5

db.data は、消費されていないメッセージを参照する btree ページを保持します。db.redo は、db.data に対して実行されようとしている更新の REDO ログです。db.free は、db.data 内の空きページを追跡します。

于 2012-10-10T14:16:15.897 に答える
2

db.redo は、インデックス (db.data) のリカバリ ファイルです。db.free は、activemq の開始時に読み取られ、メモリにロードされます。フリー リストがメモリにロードされると、ファイルは削除されます。メッセージ データベースがアンロードされると、空きリストが db.free に書き戻されます。

メッセージが削除されると、キュー/トピックの動作が異なります。

  • キューの場合、インデックス ファイルから削除されます。それに応じて B ツリー構造が変更されます。
  • トピックの場合、メッセージがすべてのサブスクライバーによって承認された場合にのみ、メッセージは削除されます。
于 2013-02-10T05:28:12.903 に答える