著作一覧 |
たとえば、COBOLの時代は終わった。という断言をするとどこからともなくとおりすがりが湧いてきて、まだまだメインフレームは現役でっせ(実はPL/Iで記述されててもお構いなしに)とか書いていったり、あるいは.NETでもCOBOLが使えまっせとか(そりゃあることは知っているが、それはメインストリームか? それでどれだけの新規案件が取れるのか?)言って、全然終わっていないと一生懸命主張するとする。
第三者がそれを見て感じることは、なんだろうか? 見苦しいなぁ、というか、まさか終わってたとは思わなかったけど、本当に終わってたんだな、という感慨だ。
というわけで、終わったことがわかったので、クラウドについても調べることにする。
#でも、対比がまずいのではなかろうかとか。
むしろ、そういう終わりうんぬんで言うと、萩原さんの、ACIDは終わったのほうが、しっくりとくる。
いや、とっくに終わっているという声がWebのほうから聴こえてくる。うむ、同じ図式か。つまり、終わっているのだな。しかし、2フェーズコミットは終わったとしても、局所的にはACID特性が守られる必要はあるような。ちょっとわからなくなったから、ここは後に回して。
つまり、終わったと無くなった(亡くなったでもいいかも)は異なる。
終わったというのは、おそらく、あまり変化する必要がなくなったという意味なのだろう。変化する必要がなければ、あとは、どれだけ固くできるかな勝負になって、最終的にはROM化されて、家電のようにパッケージ化されて、スィッチひとつで操作できるようになるということだ。
でもまあ、電灯なんてとっくの昔に終わったのかと思ったら、ここ10年(もっと短いかな)あたりの電球式蛍光灯の動きなんて、全然終わってないから、数十年してまた始まることもあるだろうけど。
ま、なんにしても終わったようだ。
で、なんだろう。
局所化されたACID特性に頼った、ゆるい分散システム(各システムの間は、キューのようなもので遅延OKで繋ぐ)アーキテクチャというのは、別にそれほど新しいとは思わないから、もっと異なる何かなのか、それとも、そのようなアーキテクチャがたとえば2フェーズコミットのように、データベースに組み込まれることになるのか(現在の洗練程度ではきっとまだまだだね、青少年というところなのだろうか)。
あるいは、全然、別の考え方が必要となるのか。いや、ならないだろ。とここについては考える。というのは、各システムについては整合性が取れている必要はあるからだ。したがって、局所的にはトランザクションは相変わらず必要と考える。
でも待て。リレーションシップがあるから、AとCが必要ということはないだろうか? 可変なものが1つにまとまっていたら、別段、好き勝手に更新しても良いのかも。
すると、更新の単位は1つのサブシステムと、その時点で実行されているトランザクションということになる。
なんか、そういう概念もあったな。スナップショットか。それが単なるバックアップ用語ではなく、リアルタイムでばかばか取られる。タイムマシンの数秒おきバージョン。で、トランザクション単位に巻き戻しができる。
メモリーがばかみたいにたくさんあって、SSDでもなんでも良いが、IOが意味なく高速なら、そういうこともありうるかも知れない。
とか、取り留めなく考えてみたり。
巻き戻しってのが古びた考え方なのかも。
どんどん上書き。
最終的に合計値が合えばOKみたいな。
補償トランザクションが自動的にがんがん生成されるとか。
でも待て、すべてが加算というわけではない。というか、あるフラグが立っていれば加算、そうでなければ減算というような制御をするのがまずいということかも。
そのときの状態は関係なく常に貸し方、借り方へ付けていく、そういうデータベースであれば、常に補償が利く。
江戸時代へ逆戻りなのか? そうとは言えない。行をなめて加算する速度が、加算結果を記録するより速ければ問題ない。
で、マスターは元々衝突するわけもなく、というか、ふつうにACID型トランザクションで良いから、基本はリードオンリーだし。
というようなデータベースを前提とすれば、どう変われるか?
ジェズイットを見習え |