db4o

Javaと.NETに対応しているオープンソースOODBのようだ(GPLだけど)。検索はプロトタイプを渡すとそれに合うオブジェクトを渡してくれる。複雑な検索条件はPredicateを渡すとフィルターしてくれたり、検索条件を組み立てたりといった方法がある。ちょっと見た限りではなかなかシンプルで使いやすそうな感想。トランザクションやインデックス、セマフォなんかもサポートされていて実用レベルで必要そうなものもあるようだ。

更新時はオブジェクトグラフをどこまで辿って更新するかという問題があるのね。そこは全部辿らせるか、人が何段まで辿るかを指定するポリシーをとっている模様。つまり格納するオブジェクトから芋づるのようにたくさんのオブジェクトがつれるような状況は遅いってことですな。まぁそこは分散通信なんかで転送するときなんかも同じなわけで、シリアライズに関するところにはついてまわる問題ということか。