MLドライバはメールのさまざまな要素をデータとして保存する必要がありま す。しかしながら、同じ要素でも、永続的に持つべき場合と、一定時間経過後 に捨てて良い扱いの場合とがあります。
前者の例はスレッドのデータです。一方、後者の例はフィルタシステムの持っ ている message-id cache などです。スレッドデータベースも同じく message-id のデータを持っていますし、記事の分については重複しています。 ですが、2つの有効期間は異なるため別々に取り扱う必要があります。
とはいえ実際問題スレッド関係とそれ以外に集約できそうなので、 各モジュールの理想的な関係は次のようになるのでしょう。
モジュールA ---|ア|----- スレッド DB モジュールB ---|ダ| モジュールC ---|プ| モジュールD ---|タ|----- キャッシュ (有効期限つき)このスレッド DB は Mail::Message::DB のようなものとし、各種アダプタ層が頑張って欲しい。 また、キャッシュの方だが、現在では Tie::JournaledDir もしくは File::CacheDir かのいづれかが使われることとなる。
author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.
For questions about FML, e-mail <fml-bugs@fml.org>.