2010年8月12日

OLTPにおいてRDBMSのスケールアウトは重要か?

だいぶいろいろとりこみましたが、一部はタイトルの議論をしています。
6
Sadayuki Furuhashi @frsyuki

memcachedなしでWebサービスを動かすのは、DRAMなしでPCを動かすようなイメージ…ちょっと違うか。参照の局所性を利用して最適化するのは良い案だけど、どの程度の局所性なのか、というか揺らぎがありそうで、プランニングが難しいと言うことかなぁ。

2010-08-12 11:24:47
Kazunori Sato @kazunori_279

.@frsyuki N階層システムをスケーラブルにするのに、ステートレスにする(クライアントかDBのみにデータを置く)か、ステートフルにする(中間層でキャッシュする)かは、昔から議論がつきないですね

2010-08-12 11:29:37
Masayoshi Hagiwara @masayh

クラウドでは後者で決まりではないでしょうか?@kazunori_279 N階層システムをスケーラブルにするのに、ステートレスにする(クライアントかDBのみにデータを置く)か、ステートフルにする(中間層でキャッシュする)かは、昔から議論がつきないですね

2010-08-12 11:31:22
Kazunori Sato @kazunori_279

@masayh 私は昔からステートフル好きでしたが、メモリが高価だった昔気質のステートレスな人ととく議論がぶつかってました^^

2010-08-12 11:32:45
Sadayuki Furuhashi @frsyuki

@kazunori_279 参照の偏り方に依る→ケースバイケースなんでしょうねぇ。完璧にスケーラブルなストレージ(ステートフル)があれば問題ないのでしょうが、ステートフルだと分散が難しいので、現実的にはステートレスな層を挟んでドーピングしたくなる感じです。

2010-08-12 11:34:16
Kazunori Sato @kazunori_279

ステートフルな設計はキャッシュするコンテナの堅牢性・可用性とかリソース消費見積もりが難しいから、ステートレスの方がシンプルイズベストって判断も多かった

2010-08-12 11:34:39
Masayoshi Hagiwara @masayh

なるほど。それもわかります。N層でトランザクションの密結合前提ではステートレスが主だったと思います。でも、今は違うでしょう。@kazunori_279 私は昔からステートフル好きでしたが、メモリが高価だった昔気質のステートレスな人ととく議論がぶつかってました^^

2010-08-12 11:35:14
Masayoshi Hagiwara @masayh

参照の偏り見て自動に配置を最適化すれば?@frsyuki 参照の偏り方に依る→ケースバイケースなんでしょう。完璧にスケーラブルなストレージ(ステートフル)があれば問題ないのでしょうが、ステートフルだと分散が難しいので、現実的にはステートレスな層を挟んでドーピングしたくなる感じ。

2010-08-12 11:37:59
Kazunori Sato @kazunori_279

あとHttpSessionでハマった人はステートレス派になるw Stateful SessionBean使っておけば使用メモリ上限指定できるのに...

2010-08-12 11:38:05
Kazunori Sato @kazunori_279

@masayh @frsyuki 偏りの自動配分とかシステム屋さんのスキルとか予算が要るから、アプリ屋にはむずいですねぇ。。

2010-08-12 11:39:31
Sadayuki Furuhashi @frsyuki

@masayh …なるほど。それは良いですね。すると、状況に応じてキャッシュ(ステートレス)とDB(ステートフル)の役割を動的に切り替えられる実装が必要そうですが、効率の良い実装はなかなか難しそうです。

2010-08-12 11:42:22
Kazunori Sato @kazunori_279

@frsyuki 気がついたら俺はOracle RACクローン実装してた。。になりそうw

2010-08-12 11:44:35
Masayoshi Hagiwara @masayh

すべてを実行時に解決しようとすると無理でしょう。ある程度部分最適でデータ設計時に静的に決める最適化。@frsyuki 状況に応じてキャッシュ(ステートレス)とDB(ステートフル)の役割を動的に切り替えられる実装が必要そうですが、効率の良い実装はなかなか難しそうです。

2010-08-12 11:47:44
Sadayuki Furuhashi @frsyuki

@kazunori_279 RACはキャッシュとDBの役割を切り替えられたりするのでしょうか? キャッシュはCoherence頼みで別システムなのかなーと思っていました。

2010-08-12 11:47:49
Kazunori Sato @kazunori_279

もっとも1つのRDBインスタンスに負荷集中しないNoSQLな設計が一般化しつつある今のクラウドだと、昔ほどキャッシュに命かける必要はなくなりつつあるな

2010-08-12 11:50:29
marble @marblejenka

cache fusionってかっこいいですよね。ドラゴンボールみたいで。

2010-08-12 11:50:55
Kazunori Sato @kazunori_279

@frsyuki RACのキモはmemcachedが10年進化したような分散キャッシュ(cache fusion)で、結構Coherenceに近いものがあります。

2010-08-12 11:52:31
Sadayuki Furuhashi @frsyuki

@masayh ちょっとイメージが湧かないのですが、このデータはキャッシュが効きやすいとか、このデータは決してキャッシュはしないといったヒントを与えておくと言うことでしょうか? そのヒントがあると…何が無理でなくなるのでしょう?

2010-08-12 11:52:49
Kazunori Sato @kazunori_279

すごい割にはあまりスケールアウトしないんだよなぁ。。>RAC

2010-08-12 11:53:13
marble @marblejenka

@kazunori_279 そういう要件があまりエンタープライズだとなかったからじゃないですかね。そうぽんぽんサーバー積み増しというのもしないでしょうし。アクティブな待機系があるというのでもそれなりによいものだったのでは。

2010-08-12 11:56:45
Sadayuki Furuhashi @frsyuki

"Oracle Real Application Clusters(Oracle RAC)のキモ ~Cache Fusionに注目する~" http://bit.ly/9sJOEE

2010-08-12 11:57:31
Masayoshi Hagiwara @masayh

データの更新頻度、アクセス法、ローカリティなどはアプリ要求である程度出る。実行時に考えることではないと思う。データパーティションもそうでしょ。手組みではだめ。@frsyuki このデータはキャッシュが効きやすいとか、このデータは決してキャッシュはしないといったヒント

2010-08-12 11:59:40
Kazunori Sato @kazunori_279

@marblejenka 基幹系だとスケールアップだけでこと足りる?そんなことはないと思うなぁ。。w NonStop Serverとかスケールアウトしまくり

2010-08-12 11:59:45
Kazunori Sato @kazunori_279

ところでJPホーガンも元DECエンジニアだったんだね。またDEC伝説がひとつ...

2010-08-12 12:02:00
marble @marblejenka

@kazunori_279 やー、hadoopみたいに計算とデータストアのノードが一緒になってて速そう、というのは魅力的ですが、そもそもそんなにスケールアウトしないといけないような案件て初期の見積もりがいけてないのではとか。

2010-08-12 12:02:24
残りを読む(164)

コメント

marble @marblejenka 2010年8月12日
お前はこれまでこのTLに出てきたスケールアウトの数を覚えているのか?
0
marble @marblejenka 2010年8月12日
yoheiaさんとyutuki_rさんは結婚したらいいかもしれませんね!
0
marble @marblejenka 2010年8月13日
本題とは関係なりつつあるけどついついまとめてしまうのでした。
0