<!--
   $FML: directory.sgml,v 1.6 2005/06/25 15:11:34 fukachan Exp $
-->


<chapter id="directory">
	<title>
	ディレクトリ
	</title>


<sect1 id="directory.subdir.hier.level">
	<title>
	Q: サブディレクトリ構造は何段階まで必要か？
	</title>

<para>
たとえば、HTML化された記事は、
こんな階層に置かれていますが、どうでしょう？
<screen>
200201/msg○○.html
</screen>
</para>

<para>
デフォルトは一段階を前提にしています。
</para>

<para>
現代の性能では、ディレクトリ中に 1000 くらいの構造なら、あってもほとん
ど瞬時に ls は返ってきますが、10000 ともなるとちょっと考えます。
</para>

<para>
HTML 化されたファイルをおくサブディレクトリを 1000 ごとに用意すると、
たとえば spool/sub/file みたいにすると、 spool/ 以下で 10^6 ( million )
くらいはそれなりのアクセス速度を保ちつつ格納できるはず。
</para>

<para>
一つのＭＬで 100 万通はなかなかいかないだろうから、まぁいいとこでしょう。
もう一段階いくと 10^9 くらいいくけど、そこまでいかんだろう。
</para>

<para>
なお Maildir/ なんかは 100 万くらいじゃちょっとつらいだろうから、２レ
ベルくらいにするだろうと。ここでは関係ない議論だけど。
メールを一万通ためる人が100人いるだけでもうだめ。
</para>

</sect1>


<sect1 id="directory.recipes">
	<title>
	レシピ's
	</title>

<qandaset>

<qandaentry>

<question>
<para>
ディレクトリ名はどこに定義されていますか？
</para>
</question>

<answer>
<para>
/usr/local/etc/fml/defaults/$VERSION/default_config.cf
にデフォルトの定義が書かれています。
各ＭＬの config.cf で上書きも出来ます。
動作時に使っている値は fmlconf で表示させるとよいでしょう。
<screen>

% fmlconf ＭＬ名 | grep _dir

</screen>
これらの値を HOOK で使う際には config オブジェクトから取り出して下さい。
<screen>

$_xxx_hook = q{
	my $config = $curproc->config();
	my $xxxdir = $config->{ some_where_dir };

	... 略 ...
}

</screen>

</para>
</answer>

</qandaentry>

</qandaset>

</sect1>


</chapter>
