PDA --- にはどんな性質のデータが入るのだろう ... アレ?どっかで書いたような 憶えがあるけども、ここで整理してみたい。
PDA といってもいろいろあるけども。データをずっとPDAの中に閉じ込めておき たいということはないはず。あと、PDA だけで大量のデータを作るということも ないと思う。
あと、PDA は、network に接続して使うものだとも思う。 完全にスタンドアローンでもいいけど、network に接続する手段が別に 欲しくなる。ただし やっぱり PDA からのアクセスコストは高い... 。 ( bit 単価は安くなるかもしれないが ... 時間がかかるとか不利な面がなくならない ことを想定)
ここでは、大胆に2つの種類のデータにわけてしまう。
こういうことを考えると キャッシュのデータってこんな使いかたができたら いいように思う
index ファイル データの中身のファイル データ A --------------> +-----------+ | | 未使用 --------------> +-----------+ |XXXXXXXXXXX| データ B --------------> +-----------+ | | +-----------+ ↑ append 新しいデータ------------> +-----------+ | | +-----------+ * だいたい PDA に入る量というのは限りがある。そのほとんどをこのタイプの データで占めるわけだから 目一杯使えば良い。 * 入らなくなってはじめて.. コンパクションする。 * PDA がオフラインで使われている間は、どんどんデータが溜ることはない。 LAN に接続されているような状況だとどんどん更新される ... PDA のストレージが CF だと ちょっとやばいから、どっか別のマシンに データを移動させることにする。 * コンパクションがおきなければ、追加分と index を PDA に送る。 コンパクションがおきたら全部更新。
少量のオリジナルデータをどうやって どこに返す ...
というのは、ちょっとおいておいて、ファイルは書いていくと大きくなる という概念を導入すると、block 化せざるを得ない。
そうするとそれを管理するために、 ファイルシステムがないと辛いなぁという感じはする。
ただ、ディレクトリはなくても良いかも。上のような index ファイルが あって、ディレクトリの代わりになればそれで良いように思う。
よくわからないが、PDA の中で使う便宜上の名前と、あるべきところに あるときの名前の 2 つを持つようにするとか ...
将来考えがかわるかもしれないけど。いまのところは、
PDAのコンテンツのうち 少量のオリジナルデータ というものは、Tiki のように、http を通した cgi でアクセスすべきもの であるべきだと考えている。
また、PDAのコンテンツのうち 大量のコピーデータというものは、 proxy を使った キャッシュサーバー上にあるべきもの だと考えている。
他のことはもちろんできても良い。だけども、最低欲しいのは、上の2つ。
現在イメージしているもの。
PDAをコンテンツを入れる箱として
からなるシステムを想定している。たぶん この箱の出入口は、network のみ。
+---------------+ +------+ | FS |-----| ruby |------ network | | | | +---------------+ +------+ +-------+ |Process| | class | +-------+
FS はもっているが 閉じている。tiki を通して アクセスするのが主な目的。
永続オブジェクト? とかの置場として見える
かどうか...までは知らない。
FS の種類は2つを想定。1 つは、ruby で ファイルシステムに見えるもの V7 ベースで、できたらジャーナリングをもサポートしたい。
もう1つは、キャッシュサーバで使われるもの、ちゃんとした ファイルシステムには見えないかも。
この箱が依存する API は、
程度を想定。
そして、これを作ってみる という意味で、