Shibayama Lab. - 動的光散乱による分布解析...動的光散乱による分布解析 東大物性研 岡部哲士, 柴山充弘 DLSによる分布解析: Nov. 15, 2006 散乱研究会テキストより
高度に進化した分散データストアについて
-
Upload
kazuho-oku -
Category
Technology
-
view
4.691 -
download
6
description
Transcript of 高度に進化した分散データストアについて
高度に進化した分散
データストアについて Cybozu Labs, Inc.
Kazuho Oku
いわゆる「クラウド」系データストアについて
Oracle (RAC) force.com (Salesforce) GAE DataStore Kumofs, hBase, etc.
Q. Oracle じゃダメな理由は?
Nov 30 2009 高度に進化した分散データストアについて 2
抽象度:高
抽象度:低
例えば PHP RDBMS を避ける
商用 RDBMS は高い OSS RDBMS はスケールアウトしない?
MySQL Cluster? Spider Storage Engine? OracleのOSSクローン?
高度に進化した分散 KVS は RDBMS と見分けがつかない Salesforce や GAE DataStore は SQL-like
Nov 30 2009 高度に進化した分散データストアについて 3
MySQL (InnoDB) の単体性能は悪くない
SELECTは十分高速 4コアで max. 40k QPS
memcached の約 1/5
ディスクへの永続的な書き込み 電源断や OS クラッシュへの耐性
多くの KVS は保証しない
SQL による操作と ACID 性 レプリケーション スケールアウトできない点だけが問題
Nov 30 2009 高度に進化した分散データストアについて 4
目的にあった分散データストアを探す(作る)基準
ACID の必要性 クエリの種類の多寡
単純なアプリケーションなら分散ハッシュでいいよね
運用手法 サービスの場合:オペレータによる操作が可能
知恵と勇気と根性!
ソフトウェアの場合:自動化と一貫性の保証 「あとからなんとか」できない
予算額 Nov 30 2009 高度に進化した分散データストアについて 5
企業向けソフトウェアの事情 (SNSと比較して)
書き込みが多い ソーシャルグラフが密
全社員宛・部課単位・プロジェクト単位
トランザクショナルな処理が多い 例: 施設予約・ワークフロー
多種多様なクエリ (JOIN 必須) 自動化への要求が高い
企業の情シス部門が管理できるように Nov 30 2009 高度に進化した分散データストアについて 6
Incline & Pacific の設計方針
必要な機能 トランザクション リレーション (eventual) consistency の保証
高度な耐障害性 SPOFの排除/Proxy-less/Daemon-less
OSS RDBMS を束ねてスケールアウト
Nov 30 2009 高度に進化した分散データストアについて 7
Incline – 動作概念
Nov 30 2009 高度に進化した分散データストアについて 8
マスタ
実体化ビュー
マスタ
実体化ビュー
マスタ
実体化ビュー
書き込み
読み込み Incline による「レプリケーション」
基本は RDB Sharding 適切な shard (のみ)への「レプリケーション」
Incline – 概要
定義ファイル(DDL)による自動的な非正規化 アプリケーションレベルの非正規化は不要 DDLを元に生成したトリガーが更新を実行
耐障害性のあるプロトコルで shard 間の更新を伝播
ACID な更新 表示用の実体化ビューは非同期更新
Nov 30 2009 高度に進化した分散データストアについて 9
tweet
following
timeline
uid:1-2000
followed_by
queue
tweet
following
timeline
uid:2001-4000
followed_by
queue
tweet
following
timeline
uid:4001-6000
followed_by
queue
Incline – 図解 (1)
自動的に JOIN して実体化ビューを更新
Nov 30 2009 高度に進化した分散データストアについて 10
...
when uid:123 tweets, write only to his tweet table. Incline updates other tables automatically
tweet
following
timeline
uid:1-2000
followed_by
queue
tweet
following
timeline
uid:2001-4000
followed_by
queue
tweet
following
timeline
uid:4001-6000
followed_by
queue
Incline – 図解 (2)
更新が多段に伝播していく例
Nov 30 2009 高度に進化した分散データストアについて 11
...
when uid:2431 starts following uid:940 only write to his following table
Pacific – 高速・安全なシャード分割ツール
安全性 最新のパーティション情報がない場合は RDBMS にアクセス不可能
高速性 読み込みロックなし 分割対象シャードのみ書き込みロック
ロック時間 < 10秒
SPOF の排除 デーモンなし。パーティション情報はファイル配布
Nov 30 2009 高度に進化した分散データストアについて 12
Incline & Pacific の現状
Incline ベータレベル MySQL と PostgreSQL に対応 Windows への対応作業中
Pacific 初期のベータレベル
see developer.cybozu.co.jp/kazuho
Nov 30 2009 高度に進化した分散データストアについて 13
高度に進化した分散データストアにむけて
アプリの「書きやすさ」向上が今後の課題 Incline と Pacific では、データの管理に重点 DBIx::ShardManager というプロトタイプ 経験をつみながら、クエリ抽象化を検討
Nov 30 2009 高度に進化した分散データストアについて 14