From a49e0fee73fc5f38dee595c4c0896fa7660dd2a8 Mon Sep 17 00:00:00 2001 From: fukachan Date: Sun, 5 Aug 2001 12:33:49 +0000 Subject: how to store data persistently --- fml/doc/ja/tutorial/internals/db.sgml | 87 +++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 fml/doc/ja/tutorial/internals/db.sgml (limited to 'fml/doc/ja/tutorial/internals') diff --git a/fml/doc/ja/tutorial/internals/db.sgml b/fml/doc/ja/tutorial/internals/db.sgml new file mode 100644 index 00000000..f866c4f7 --- /dev/null +++ b/fml/doc/ja/tutorial/internals/db.sgml @@ -0,0 +1,87 @@ + + + + + データベースの扱い + + + +永続的にデータを保持する方法はいくつかあります。 +LRU な何かモジュールを使っても良いのですが、 +大げさで、いまひとつしっくりこない気がします。 + + + +FML では、expire の仕方に応じて、 +代表的な2つのクラスを用意しています。 + + + + + + + Tie::JournaledFile クラス + + + +一つの考えは、一つのファイルに append していくもの。 +このために +Tie::JournaledFile +クラスが用意されています。 +これは、 +データを蓄えるために用いています。 +つまり、追加もするし、参照もしたい場合ですが、 +追加しかしません。 +必要な時には過去のログを追跡できます。 +値は追加された値を last match で取り出します。 + + + + + + + + File::CacheDir + + + +これは、あるディレクトリ(例: db/)に複数のファイルとして蓄える。 +db/ には 1 〜 100 のファイルがつくられ、順番に使われる。 +ぐるぐる回って使われ、上書きされていく。 + + + + +主に上限サイズを設けたログを蓄えたい場合に用いる。 + + + + +あるディレクトリに複数のファイルとして蓄えるが、 +古いものを expire していくことが可能なもの。 +db/ に YYYYMM 形式のファイル名でデータを蓄え、 +古いものは随時消去する。 + + + + +データを蓄えるために用いている。つまり、追加もするし、 +参照もしたい場合に使いますが、 +いつのまにか古いデータは消えていきます。 + + + + + +旧 RingBuffer, File::CacheDir に統合されました。 + + + + + + + + + -- cgit v1.2.1