たなかこういちの開発ノート

システム開発に携わる筆者が、あれこれアウトプットするブログ

"Append-Only"なRethinkDB、Datomic、CouchDB

以前の記事で、"CRUD is dead"というフレーズについてと、Amazon Aurora同様のLog-Structured Storageを基礎とした「RethinkDB」というDB製品がある(あった)という話を書きました。
 
その後さらに調べて次のことがわかりました。
 
 
まず、"CRUD is dead"といったキャッチフレーズで表される「Log-Structured」を基礎とした内部構造について、"Append-Only"方式、と称するのが一般に通りがよいようです。

 

そして"Append-Only"方式共通の“弱点”である「容量が無制限に増える」、「“ガベージコレクション”がパフォーマンスや可用性に影響を与える」を上げて、RethinkDBや他の同種DB製品である「Datomic」を批判する下記のような記事がありました。

 

 
この記事によると、"Append-Only"方式を採っているDB製品として次のようなものがあるとのことです。
 
- RethinkDB:http://rethinkdb.com/

 

現在のRethinkDBは、"Append-Only"であることを前面にPRすることが無いだけで、実装的には"Append-Only"方式を捨てた訳ではないようです。

 

- Datomic:http://www.datomic.com/
 
"Append-Only"であることを前面に主張しています。(※"Travel Through Time with Ease"と表現しています。)

 

なお、Datomicの開発元のCognitect社は、言語Clojureを作ったRich Hickey氏がCTOを務めています。 
 
- CouchDB:http://couchdb.apache.org/
 
NoSQLの代表の一つのCouchDBですが、実は"Append-Only"であるようです。下記ページにその言及がありました。
 
"Apache CouchDB 1.6 Documentation"、"ACID Properties":

 

批判記事には、Datomicの中の人が反論をコメントしています。その論点は次のようなものです。
 
「内部は、Readキャッシュを装備したり、階層分離の構造を採ってスケール・アウトを容易にして、指摘するような容量上限に達して動かなくなることや“ガベージコレクション”がパフォーマンスに影響を与えるようなことが無いよう、設計上の工夫をしている。」


驚くことに、これはAmazon Auroraがやっていることと技術戦略的に全く同一なのです。

 
◆以上