uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

UNIX Magazineのクラウド特集は読んどくべき

2009年春号のUNIXマガジンは凄いおもしろい。Burtfs, iPhoneの話もいいんだけど、クラウド特集は一般雑誌で最もまとまった最新のサマリ情報。(ちょっとアマゾン見たら、売り切れになってプレミア付いてる!!)

しばらく前に買って放置してたんですが、読み直したら最近疑問に思ってたこと多くが整理できた。

上を読んで分かったこと・気づいたことや考えたことをいくつか:

  • ACIDはデータベースの概念だがBASEはOSを含む分散システム全体の概念。
  • CAP定理によりスケーラビリティを得るなら可用性と整合性は排反だが、ミクロに見ればACIDとBASEを1アプリ中で使い分けることができる。アトミックトランザクションが必要なとこはそうする。そうではないところはBASEで。(もともとトランザクションの世界でも、システム全体で完全なロック・排他をするようになってない。そんなことをすると性能が落ちて使い物にならない)
  • BASEが必要な理由はメッセージングが必要で有用な原理と同じ。従来メッセージングミドルウェアを使ってた分野では必然性が理解できる。
  • 結局のところ世界の根源原理はBASEに従っていて、ある特殊条件でACIDが成立しているかのように見える。(一般相対性理論と、特殊相対性理論の関係、あるいは古典物理と量子物理学の関係のよう)
  • GAEでは、予め定義されたテーブル(Kind)内でトランザクション可。これはそのように宣言しないと別マシン上に格納されてしまうかもしれないから。逆に言うと予め定義することで同じ物理マシン上で実行できることが保証される。結果としては「分散トランザクションは出来ないし、しない」ということ。
  • 高度に冗長化された高可用なシステムでは、メモリの意味が変わってきて、ハードディスクがただのバックアップになる。分散ハッシュはそういうことなのだ。
  • スキーマレスDBっつーのはようはアレだ、JavaScriptのオブジェクトみ たいな、GroovyのExpandoみたいな、要はハッシュじゃ。それが永続化されていてクエリできるんだから、「プロトタイプベースオブジェクト指向データベース(PTBOODB)」だ。

これからはエンタープライズクラウドっすよ。SIerや業務システム開発の業種の主戦場は5年後にはクラウドに移行していることでしょう。結局世の中は金で動いているがゆえに(後で書く)