はじめは大規模なWebサービスを提供する現場の工夫に始まった分散キャッシュ技術、これが最近ではキャッシュのみならずデータのレプリケーション、永続化も可能となりKey-Value Store(KVS)と言われるようになった。
実質的にOracleやIBMのくそ高いインメモリデータベースにかなり近づいてきているが、それらがメモリ上にRDBMSを構築する物であるのに対し、KVSはキー値とデータというもっと単純なデータ構造を持つのが大きな違いだ。
スケールアウトによる負荷分散を前提とする大規模なWebサービスやユーティリティコンピューティングにとってRDBMSを前提とするOLTPの考え方はそれがボトルネックになり、パフォーマンスと冗長性に対する傷害になりやすく、KVSのようなネットワーク透過で高速な分散ストレージの方が適している。ただそこで問題になるのはいわゆるATOMの部分で、ようはトランザクションがかけられない。
そこで最も重要なのはこういったKVSに合わせた新しいソフトウェアアーキテクチャパターン、それよりももっと純粋な技術背景となる思想といった物(そもそもデータの一貫性は本当に必要なのか?)で、それでも過去RDBMSがそうだったようにKVSに合わせた新しい概念が登場する物と思っている。
ということで、メモ書き。
2/20にこのKVSを対象とした勉強会が開かれたらしい。
「キー・バリュー型データストア」開発者が大集合した夜:ITpro
こちらでどのようなKVSが有るかまとめられている。うーんErlangでの開発が多い。当然のように.NETだのC#という文字はそこにはない。
Anti-RDBMS: A list of distributed key-value stores | Richard Jones, Esq.
昨日も一つ以下の物がニュースになっていた。
MSのVelocityは開発と情報が出てくる頻度が遅すぎるし、目指すところがどうもOracleとかのインメモリデータベースに有るような気がしてならず、このままだと酷く埋没した技術になりそうな気がする。というよりも、MSはWindowsが企業内ユーティリティコンピューティングのプラットフォームになることでさえ見放したのか?(ぶっちゃけ.NET ServiceisやAzureのバックエンド技術の切り出しだろうから、開発がそちら優先でVelocityとして外に出したくても出せないのかもしれないが。)
コメント