最近のキーワードが繋がった

キーバリュー型DBだとSQLなんてないから、単にキーを指定してデータを保持してもらう、そういうのが根幹。だけどもそれだけならばBerkleyDBとなんら変わらない訳で、調べてみたらそこにMap Reduceの存在があった。(遅い)
MapReduceを使うことでSQLでいうJOINやら集合やらを実現することができる訳で、しかも当たり前のように分散処理になる。で、そのMapReduceは、処理を何らかの言語で記述するわけで、そこで使われるのがJavascriptだったりPythonだったりするわけであった。そしてそこで受け渡されるバリュー部分がJSONで、と。
SQLの代替機能としてCouchDBだとviewがあって、データの更新のたびに自動的にMapReduceが走ってその結果を持っていてくれる。なるほど。
そもそもMapReduceは処理順序を保証する必要がない仕組みっぽい*1から、1つのデータが更新されたら、そのデータに対するMapと既存viewとのReduceだけで終わるっぽい。こりゃいい感じ。(一年前に気づくべきだった)
そうすると、workflowにおける組織ツリーに関する雑多な問題が簡潔に解決できそうな気がしてくる。記憶領域は多量に必要になりそうな悪寒がするけど、その分高速な処理ができるような。おらワクワクしてきたぞ。
そしてそのワクワクするシステムを展開する場としてクラウドなんかがあるわけで。いいねぇ。
SQL代替であと必要なのはsortか。なんか仕組みあるんだろう。勉強すっぞ〜。

*1:まだ読んでないけど