summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/internals/db.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'fml/doc/ja/tutorial/internals/db.sgml')
-rw-r--r--fml/doc/ja/tutorial/internals/db.sgml87
1 files changed, 87 insertions, 0 deletions
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 @@
+<!--
+ $FML$
+-->
+
+<chapter id="db">
+ <title>
+ データベースの扱い
+ </title>
+
+<para>
+永続的にデータを保持する方法はいくつかあります。
+LRU な何かモジュールを使っても良いのですが、
+大げさで、いまひとつしっくりこない気がします。
+</para>
+
+<para>
+FML では、expire の仕方に応じて、
+代表的な2つのクラスを用意しています。
+</para>
+
+
+
+<sect1 id="db.Tie.JournaledFile">
+ <title>
+ Tie::JournaledFile クラス
+ </title>
+
+<para>
+一つの考えは、一つのファイルに append していくもの。
+このために
+Tie::JournaledFile
+クラスが用意されています。
+これは、
+データを蓄えるために用いています。
+つまり、追加もするし、参照もしたい場合ですが、
+追加しかしません。
+必要な時には過去のログを追跡できます。
+値は追加された値を last match で取り出します。
+</para>
+
+</sect1>
+
+
+<sect1 id="db.File.CacheDir">
+ <title>
+ File::CacheDir
+ </title>
+
+<para>
+これは、あるディレクトリ(例: db/)に複数のファイルとして蓄える。
+db/ には 1 〜 100 のファイルがつくられ、順番に使われる。
+ぐるぐる回って使われ、上書きされていく。
+</para>
+
+
+<para>
+主に上限サイズを設けたログを蓄えたい場合に用いる。
+</para>
+
+
+<para>
+あるディレクトリに複数のファイルとして蓄えるが、
+古いものを expire していくことが可能なもの。
+db/ に YYYYMM 形式のファイル名でデータを蓄え、
+古いものは随時消去する。
+</para>
+
+
+<para>
+データを蓄えるために用いている。つまり、追加もするし、
+参照もしたい場合に使いますが、
+いつのまにか古いデータは消えていきます。
+</para>
+
+
+<warning>
+<para>
+旧 RingBuffer, File::CacheDir に統合されました。
+</para>
+</warning>
+
+</sect1>
+
+
+
+
+</chapter>