「メガトレンド」を追いかけ、「5分後の未来を展望する」ことを理想します。
2009
クラウド時代のトランザクション

2010
NoSQLデータベースを試してみる

ネット検索すると、2009~2010年くらいでNoSQLの記事が多く、最近の記事は少な目。

RDBはACIDで、NoSQLはBASE。

RDBはいつでもどこでもデータの整合性が取れていなければならないとしますが、

BASEは最終的に整合性が取れていれば途中おかしくなってもいいじゃん。

という考え方でしょうか。

ネットで不特定多数の人間が非同期的にデータを読み書きするのだから、

そういう考え方もありかなあという気もします。

もうちょっと拡張して企業のシステムにも反映できないものか考えていますが。

スピード重視で、データの変更の流れとデータ変更の理由さえ明確なら、BASEモデルでもいけるんじゃないでしょうか。


業務システムに求められるもの
業務システムに求められるのは、情報の管理の厳密性です。どこかで情報が紛失したり構造が壊れたりするということは許されません。複数人から高速に行われる処理を、可能な限り高速かつ安全に実現することが何よりも優先される世界になります。
こうした業務システムに求められるのは、システム開発時においてシステムの非機能要件の一部としてまとめられます。最近ではSLA(Service Level Agreement: サービス水準の合意)という記述で代表される部分に表現されます。
さてこの企業システムにおいて最低限守らねばならないSLAを考慮した場合、従来のACIDモデルは安全な企業システムを実現する手段として、ほぼ要件を満たしていると考えられてきました(ほぼ、と記載したのは、万が一に失敗する確率が理論的に存在しているからです)。少なくとも、そうした合意がIT業界をはじめとして、ユーザー企業側にもある程度浸透しています。またこのACIDモデルは現在の企業システムを支える根幹として、揺るぎない地位を保っていることは間違い無いでしょう。
では、何故この実績あるACIDモデルが、その地位を追われる必要があるのでしょうか?






2012
NoSQLの世界へようこそ




2013

NoSQLの現状

多くの人々は、NoSQLの世界では大きな合併が起きていると考えてきました。ところが、本当はそうではありません。NoSQLは、ただ急激に増えただけであり、まだ増え続けています。





その選択、ちょっと待った!NoSQLデータベースへ乗り換える前に検討すべき3つのポイント

トランザクションでは、データの整合性の取れた(いわゆる正しいデータを持った)データベースに対して、一連の更新処理をすべて実行して初めて、データベースが「次の」整合性のある状態へ遷移すると考える。中途半端な状態で終了したということは、つまり何らかの不整合が生じているわけだ。更新が中途半端な状態で終わってしまったとき、トランザクションが実装されているデータベースではそれを「前の」整合性のある状態へと自動的にロールバックしてくれる。だが、そのような機能がなければ、アプリケーションが同等のロジックを実装するか、何らかの代替の方法で不整合を解決するしかない。これは非常に大きな手間である。

ちなみに、MongoDBで実装されているような「アトミックな操作」があればトランザクションは要らないと考える人が居るようだが、これも誤りである。一部の更新処理だけアトミックで実行できたとしても意味はない。一連の操作全てがアトミックで出来ること、すなわち中途半端な状態にならないことが保証されて初めて、データベースを整合性のとれた(正しいデータを持った)状態に保つことができるのである。

重要なのは、処理に応じて適切なツールを選ぶということである。処理に応じてどのデータベースにするかを選択する、あるいは複数のデータベースを併用するといった判断とそのノウハウが、これからはますます重要になっていくことだろう。



正常に動作している間はいいですが、不測の事態が起きた時にどこを最新とするかに業務システムとしては課題がある感じです。

適材適所でハイブリッドDBが無難なところに落ち着くのでしょうか。


NoSQLとRDBを両立する「NewSQL」って何だ?

InfoFrame Relational Store

NewSQLは夢がある考えですが、実用的になるまでは時間が掛かりそう。
関連記事
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://jderby.blog51.fc2.com/tb.php/3531-d178b4d0
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック