以前の記事で、"CRUD is dead"というフレーズについてと、Amazon Aurora同様のLog-Structured Storageを基礎とした「RethinkDB」というDB製品がある(あった)という話を書きました。
その後さらに調べて次のことがわかりました。
・
まず、"CRUD is dead"といったキャッチフレーズで表される「Log-Structured」を基礎とした内部構造について、"Append-Only"方式、と称するのが一般に通りがよいようです。
そして"Append-Only"方式共通の“弱点”である「容量が無制限に増える」、「“ガベージコレクション”がパフォーマンスや可用性に影響を与える」を上げて、RethinkDBや他の同種DB製品である「Datomic」を批判する下記のような記事がありました。
"Immutability, MVCC, and garbage collection":http://www.xaprb.com/blog/2013/12/28/immutability-mvcc-and-garbage-collection/
この記事によると、"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がやっていることと技術戦略的に全く同一なのです。
◆以上