wdsm(またはsref-wdsm)とは、Weathering Data Storage Managerの略(仮名)。
将来に名前を変更する可能性がある。
目的
srefで必要になるストレージエンジンの仕様を確定し、その実装を行う。
但し、これはsref以外でも利用したい為、できるだけ汎用に耐えられる仕様とする。
要求される仕様(概要)
- GC付きストレージである事。
- GC判定は、reference count等の高等なアルゴリズムではなく、単に最終アクセス日時を元にするだけのものでよい(が、後述の条件有り)。
- 要求されるGC動作はかなり曖昧でも問題無い。
- 内部ではdbmに記録を行う。
- インターフェースを二種類用意する必要がある。
- 一つは、mysqlのように、サーバプロセスが常駐し、unix domain socket等によって通信を行い、データを返すもの。このインターフェースは、主にデータを高速に操作する必要がある際の為のものである。
- もう一つは、sqliteのように、ライブラリ手続きの呼び出しだけで操作が行えるもの。GCも適度にさぼっても良い。
- この二つのインターフェースは、同時にアクセス可能な事が好ましい(が、無理なら、排他でもokとする)。
確定仕様
まだ無し。
未確定仕様
- 通常の保存領域とは別に、(文字列か何かによる)ロック/アンロック機構を用意する必要がある。
- ここの仕様は複雑になる可能性があるが、上手くやれば簡単にできるかもしれない。あとでもう少し考える。
- 全体ロックだけでは駄目なのか?全体ロックだけでいいような……
- ロックが必要になる本質的な原因は、トランザクション安全性をどうやって確保するかという点にあるので、その点から考え直した方がいい。あとで。
- 保存されるデータは通常のdbmと同じく、keyとvalのセットのみとなる。keyとvalはwrite/read invarianceの保たれるS式とする。
- 実際にdbmに保存する際には、keyとvalは以下のようにメタデータが付与された状態で保存される。
続きはあとで。
最終更新 : 2009/01/23 02:36:09 JST