スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

Smalltable、OODB、STM、分散バージョン管理

SmalltableのローカルのSQLiteは、既存のSQLプログラミング手法をそのまま使えてかつDatastoreの特性を生かせるという意味では便利ですが、しかしActionScriptJavaScriptのオブジェクトをもとにSQL組み立てたりORMしたりするのってそもそも面倒です。なので理想的には、OODBであるObjectStoreのようにクライアント側のオブジェクトをそのままトランザクショナルに永続化して、それを背後でDatastore介して同期したり排他するのがいいのかなぁ〜なんてつらつらつぶやいてたら、私のTLにはマニアックな方々が多くいて反応いただきました。

特に@ashigeruさんからはSTM(Software Transactional Memory)について面白資料をたくさん教えていただき、またSVNや分散バージョン管理との類似性、Log structured storageによる実装といったアイディアもぽんぽんいただきました(@ashigeruさんは打ち手の小槌のような方ですねw)。もったいないのでさっそくまとめました:

12/27追記

ObjectStoreの分散キャッシュについて:

12/28追記

皆さんから教えていただいた資料のリンク集:

Neo4j(グラフDB)のロックについて:

STM関連:

@frsyukiさんがつぶやいてたLSM-Treeっていうのもすごく面白そう(上述のLog structured storageに近い感じ):

@frsyukiさんのつぶやき:

トランザクショナルな分散キャッシュメモリと、Column-orientedでLSM-treeな解析的なデータストアの組み合わせは、なかなかイケてる感。2010年代のデータストアはコレだ…!などと。

12/30追記

Twitter見てたら@ashigeruさんがオブジェクトグラフのDatastore保存についてありがたき預言をつぶやかれていたので、もちろんまとめさせていただきました: