[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

データベース関連モジュール

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 が動作する上で内部的に使っているデータ操作の話になります。

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >