SQLのWITH句で再帰問合せを試してみる
2014 年 12 月 15 日 月曜日 by O谷WITH句自体はoracle9iからサポートされているので10年以上前のものですが、
WITH句自体はoracle9iからサポートされているので10年以上前のものですが、
前回までに、クラウドアプリケーションには
スケールアウト(スケーラビリティ)が必要だと語った。
しかし、そうでない場合もある。
プライベートクラウドで利用する、
利用量が一定の小規模なアプリケーションであれば
開発スピードとスケーラビリティをトレードオフしても良いと思う。
この場合は、クラウド上のSaaSになってしまうが、
別に、クラウドアプリケーションと呼んでもいいと思っている。
ただ、企業や技術者がクラウド出来ますって言った時は
大量のトラフィックをさばけて、スケールアウトするシステムを作れないと
全くお話にならないので、しっかり身につけておくべきだ。
おわり
マシンをスケールアウトするなら、
アプリケーションもスケールアウトしなければならない。
これはデータベースで考えるとわかりやすい。
1台のマシンにデータが入りきらなくなった時、
マシンを追加するしかない。
データを分散して格納したら、追加したマシン分の容量が増えるが、
あるサーバにしか存在しないデータが出てくることになる。
そういったデータの読み書きを考慮しなければならない。
また、SNSのように、
書き込んだ内容を多数のユーザに公開する場合には、
ユーザAは見れるが、ユーザBは見れない
ということにならないよう、各サーバへの追加や
データの削除を反映するためのバッチ処理を
並列処理するといったことも考える必要がある。
データベースサーバを単に追加するだけでは駄目なのだ。
つづく
先日(2011年2月18日)、地元広島で日本アンドロイドの会 丸山不二夫会長の講演会が開催されました。講演会は定員がすぐに埋ってしまうほどの人気ぶりでしたが、私は運よく参加できたので、そのときの内容をレポートします!
講演会タイトルは、
広がるAndroidの世界 ~メディアとコミュニケーションと日本の未来~
日本Androidの会 会長 丸山 不二夫 氏
講演会の内容は大きく分けると次の4つでした。
それでは1つずつレポートしていきます。
クラウドではスケールアウトがなぜ重要か。
サービスへのアクセスが増えた場合を考えてみよう。
負荷が増えると性能を上げれば良い(スケールアップすればいい)
と思いがちだが、爆発的にユーザが増えた時に、
CPUやHDDの入れ替えといった手段は取れない。
止まっている間に多くのユーザを失ってしまうからだ。
また、CPU、HDDには限界がある。
(その時点の最高のものまでしか手に入らないのだ)
サービスを停止せずに、増えていく負荷に対応するには
スケールアウトという手段しかない。
それはグーグルをみれば明らかで、
グーグルは安価なPCを大量に配置することでコンピュータグリッドを作り上げ、
様々なサービスを、停止することなく提供しているのだ。
つづく
開発者視点でのクラウドアプリケーションとSaaSの違いは何か?
言い方が違うだけで、同じなのでは?
一応、クラウドアプリケーションとSaaSは同じといえる。
(正確にはクラウドアプリケーションはSaaSの一部だ)
違いは、クラウドアプリケーションの場合は、
分散/並列/スケールアウトを考慮しているということだ。
しかし、Amazonなどのクラウドサービスを利用してマシンを調達し、
そのマシン上に構築した今まで通りのサービス(SaaS)も
クラウドアプリケーションと呼べるから、理解や説明がややこしくなる。
開発者として意識するポイントは、スケールアウトなのだ。
つづく