From e906a48343c503e1a8d9b215b5518eb9eeb06a6b Mon Sep 17 00:00:00 2001 From: fukachan Date: Sun, 19 Aug 2001 12:53:07 +0000 Subject: clean up db.sgml, add&enable dbms.sgml (prototype) --- fml/doc/ja/tutorial/book.sgml | 3 +- fml/doc/ja/tutorial/include/chapters.ent | 3 +- fml/doc/ja/tutorial/internals/db.sgml | 113 ++++++++++++++++++++++--------- fml/doc/ja/tutorial/internals/dbms.sgml | 15 ++++ 4 files changed, 99 insertions(+), 35 deletions(-) create mode 100644 fml/doc/ja/tutorial/internals/dbms.sgml (limited to 'fml/doc/ja/tutorial') diff --git a/fml/doc/ja/tutorial/book.sgml b/fml/doc/ja/tutorial/book.sgml index 6d304491..e273f887 100644 --- a/fml/doc/ja/tutorial/book.sgml +++ b/fml/doc/ja/tutorial/book.sgml @@ -2,7 +2,7 @@ This is an sgml using DocBook dtd. Use sgmltools version 2.0.x or above to generate various output formats. -$FML: book.sgml,v 1.11 2001/06/10 10:22:44 fukachan Exp $ +$FML: book.sgml,v 1.12 2001/08/05 12:33:49 fukachan Exp $ --> diff --git a/fml/doc/ja/tutorial/include/chapters.ent b/fml/doc/ja/tutorial/include/chapters.ent index 7014f256..fdb7ed52 100644 --- a/fml/doc/ja/tutorial/include/chapters.ent +++ b/fml/doc/ja/tutorial/include/chapters.ent @@ -1,5 +1,5 @@ @@ -31,6 +31,7 @@ + diff --git a/fml/doc/ja/tutorial/internals/db.sgml b/fml/doc/ja/tutorial/internals/db.sgml index f866c4f7..6482399a 100644 --- a/fml/doc/ja/tutorial/internals/db.sgml +++ b/fml/doc/ja/tutorial/internals/db.sgml @@ -1,21 +1,37 @@ - データベースの扱い + データをどう保持するべきか?(データベースの扱い) 永続的にデータを保持する方法はいくつかあります。 -LRU な何かモジュールを使っても良いのですが、 -大げさで、いまひとつしっくりこない気がします。 +LRU などの機能を持ったモジュールを使っても良いのですが、 +やや大げさで、いまひとつしっくりこない気がします。 +つまり、そこまで真面目に virtual memory のような実装を +しなくてもよいのでは?という気がします。 +それに、もし切実に必要なら、なんらかの + +DBMS + + + + DBMS = DataBase Management System + + +を使うべきでしょう。 + -FML では、expire の仕方に応じて、 -代表的な2つのクラスを用意しています。 +そういったわけで FML では、expire の仕方に応じて +2つのデータ保持クラスを用意しています。 +それは +サイズを気にせず、時間を区切って expire するのか? +使用する領域のサイズをある程度気にするか?の 2 種類です。 @@ -26,17 +42,51 @@ FML -一つの考えは、一つのファイルに append していくもの。 -このために -Tie::JournaledFile -クラスが用意されています。 -これは、 -データを蓄えるために用いています。 -つまり、追加もするし、参照もしたい場合ですが、 -追加しかしません。 -必要な時には過去のログを追跡できます。 -値は追加された値を last match で取り出します。 +これは、一つのファイルに append していくタイプです。 +この機能は + + Tie::JournaledFile + +クラスが提供します。 + + + + +このクラスは、データを追加もするし参照もしたい場合に用いられますが、 +追加のオペレーションしか行なえません。 +つまり LFS (Log Structured File System) のような振舞いです。 + + + + +参照する際は最後に追加したデータが取り出されます。 +つまり、値は追加された値を last match で取り出しています。 + + + + +逆に、必要な場合には、過去のログを追跡していくことができます。 + + + + +このクラスは、サイズを度外視して一定期間の間記録しておきたい +データに対して使います。 +例えば、登録時の confirmation のキャッシュや +message-id キャッシュです。 +これらは expire を時間で制御したいからです。 + + + + + +なお検索時の挙動の +first match と last match は切替えることができます。 +どちらの戦略で探すのか、 +クラスオブジェクトを生成する際に明示的に指定することが推奨されます。 +デフォルトは last match です。 + @@ -47,29 +97,28 @@ Tie::JournaledFile -これは、あるディレクトリ(例: db/)に複数のファイルとして蓄える。 -db/ には 1 〜 100 のファイルがつくられ、順番に使われる。 -ぐるぐる回って使われ、上書きされていく。 - - - - -主に上限サイズを設けたログを蓄えたい場合に用いる。 +この + + File::CacheDir + +クラスは、主にサイズに上限を設けたいタイプのデータを蓄える場合に用 +います。expire の時間については気にしません。 +サイズで有無を言わさず切ってしまいます。 -あるディレクトリに複数のファイルとして蓄えるが、 -古いものを expire していくことが可能なもの。 -db/ に YYYYMM 形式のファイル名でデータを蓄え、 -古いものは随時消去する。 +デバッグ等に用いるデータはこれで十分と考えています。 +普段は使わないデバッグのために、サイズを食われるのも嫌ですから。 -データを蓄えるために用いている。つまり、追加もするし、 -参照もしたい場合に使いますが、 -いつのまにか古いデータは消えていきます。 +このクラスは、あるディレクトリ(例: db/)の有限の複数のファイル郡の中に +データを蓄えます。 +例えば db/ に 1 〜 100 の名前のファイルがつくられ、 +順番に使われてきます。 +これらのファイルはぐるぐる回って使われ、上書きされます。 @@ -82,6 +131,4 @@ db/ - - diff --git a/fml/doc/ja/tutorial/internals/dbms.sgml b/fml/doc/ja/tutorial/internals/dbms.sgml new file mode 100644 index 00000000..0f393c0c --- /dev/null +++ b/fml/doc/ja/tutorial/internals/dbms.sgml @@ -0,0 +1,15 @@ + + + + + データベース管理システム + + + +ごめん、この章は予約しただけで、書いてないです _o_ + + + + -- cgit v1.2.1