Chapter 51. データベース関連モジュール

Table of Contents
概要もしくは理想像
永続的なデータの保持
Tie::JournaledFile クラス
FML::Cache::Ring クラス

概要もしくは理想像

MLドライバはメールのさまざまな要素をデータとして保存する必要がありま す。しかしながら、永続的に持つべきデータと、一定時間経過後に捨てて良い データがあります。

前者の例はスレッドのデータです。一方、後者の例はフィルタシステムの持っ ている message-id cache などです。スレッドデータベースも同じく message-id のデータを持っていますし、記事の分については重複しています。 ですが、2つの有効期間は異なるため別々に取り扱う必要があります。

とはいえ実際問題スレッド関係とそれ以外に集約できそうなので、 各モジュールの理想的な関係は次のようになるのでしょう。

モジュールA ---|ア|----- スレッド DB
モジュールB ---|ダ|
モジュールC ---|プ|
モジュールD ---|タ|----- キャッシュ (有効期限つき)
このスレッド DB は Mail::Message::DB のようなものとし、アダプタ層が差異を吸収して欲しい。 キャッシュについては、現在のところ Tie::JournaledDir もしくは FML::Cache::Ring のいづれかが使われることとなっています。

なお、 メンバーリストなどの永続性の必要なデータに対してデータベースを使う場合は、 本来、きちんとした DBMS (データベース管理システム)を使うべきです。

本章で述べるデータベースはそれとは異なり、 fml8 が動作する上で内部的に使っているデータベースのことです。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

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>.