© Hitachi, Ltd. 2013. All rights reserved.株式会社 日立製作所 情報・通信システム社スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品ITプラットフォーム事業本部 開発統括本部20...
© Hitachi, Ltd. 2013. All rights reserved.自己紹介
© Hitachi, Ltd. 2013. All rights reserved. 2DB Onlinehttp://enterprisezine.jp/dbonline/detail/39912000年入社・Cosminexus開発・Cos...
© Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドって何だ?Contentsインメモリデータグリッドの要素技術強一貫性への挑戦!スプリットブレインになっても一貫性を保証するインメモリデー...
© Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドって何だ?スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
© Hitachi, Ltd. 2013. All rights reserved. 5インメモリデータグリッドって何だ?登場の背景
© Hitachi, Ltd. 2013. All rights reserved. 6登場の背景・発信データの爆発的増加(Big Data)・データを扱うミドルウェアへの要件として大量発信データの高速処理、リアルタイム分析、大量蓄積データの高...
© Hitachi, Ltd. 2013. All rights reserved. 7日立の取り組みインメモリデータグリッドって何だ?
© Hitachi, Ltd. 2013. All rights reserved. 8日立の取り組み①uCosminexus Elastic Application Data store(以下EADs)(C22)②uCosminexus St...
© Hitachi, Ltd. 2013. All rights reserved. 9インメモリデータグリッドって何だ?日立の案件
© Hitachi, Ltd. 2013. All rights reserved. 10日立の案件(電力)工場オフィス戸建検針値1日分スマートメータ収集サーバから出力される大量の検針値(30分値)を、一定期間(40日)分DBに格納したい。大量...
© Hitachi, Ltd. 2013. All rights reserved. 11日立の案件(通信)メディエーション交換機から出力される大量のRawCDRを、課金システムや帯域制御システム向けのCDRに編集したい。RawCDRCDRRa...
© Hitachi, Ltd. 2013. All rights reserved. 12インメモリデータグリッドって何だ?インメモリデータグリッドの3つの特徴
© Hitachi, Ltd. 2013. All rights reserved. 13インメモリデータグリッドの3つの特徴①インメモリKVSである
© Hitachi, Ltd. 2013. All rights reserved. 14インメモリデータグリッドの3つの特徴①インメモリKVS*である・一意に識別可能な「キー」とそれに対応する「値」で構成されるデータを保持するインメモリストア...
© Hitachi, Ltd. 2013. All rights reserved. 15インメモリデータグリッドの3つの特徴②分散している
© Hitachi, Ltd. 2013. All rights reserved. 16インメモリデータグリッドの3つの特徴②分散している・複数サーバのメモリ上にデータを分散配置・スループット性能と拡張性Key ValueFoo ABar 0...
© Hitachi, Ltd. 2013. All rights reserved. 17インメモリデータグリッドの3つの特徴③実行できる
© Hitachi, Ltd. 2013. All rights reserved. 18インメモリデータグリッドの3つの特徴③実行できる・同時に使うデータを同じ場所に格納する(Grouping*)・ユーザロジックの分散実行(Distribut...
© Hitachi, Ltd. 2013. All rights reserved. 19まとめインメモリデータグリッドって何だ?
© Hitachi, Ltd. 2013. All rights reserved. 20大量発信データの高速処理(レスポンス、スループット、スケールアウト)を実現するために以下の特徴を持つもの・インメモリKVSである・分散している・実行できる...
© Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドの要素技術(分散基盤編 )スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
© Hitachi, Ltd. 2013. All rights reserved. 22インメモリデータグリッドの要素技術コンシステントハッシング~分散の技術~
© Hitachi, Ltd. 2013. All rights reserved. 23コンシステントハッシング・サーバは232の範囲に等分配置・Keyのハッシュ値からマスタの保存先を決定EADs Tool231-1 | -231Put Fo...
© Hitachi, Ltd. 2013. All rights reserved. 24インメモリデータグリッドの要素技術レプリケーション~冗長化の技術~
© Hitachi, Ltd. 2013. All rights reserved. 25レプリケーション・多重度定義に従いデータを複製・高速化のため非同期EADs Tool231-1 | -231Put Foo AレンジHash(Foo)スレ...
© Hitachi, Ltd. 2013. All rights reserved. 26レプリケーション・1サーバは複数レンジのデータを保持EADs Tool231-1 | -231スレーブ1スレーブ2マスタ
© Hitachi, Ltd. 2013. All rights reserved. 27インメモリデータグリッドの要素技術マスタ昇格~耐障害性の技術~
© Hitachi, Ltd. 2013. All rights reserved. 28マスタ昇格(障害時)・ハートビートおよびヘルスチェックによる障害検知・サーバを切り離しマスタを切り替えるEADs Tool231-1 | -231スレーブ...
© Hitachi, Ltd. 2013. All rights reserved. 29マスタ昇格(復旧時)・運用機能によるサーバ追加・レンジ単位にデータ転送EADs Tool復旧サーバ復旧レンジ転送速度
© Hitachi, Ltd. 2013. All rights reserved. 30マスタ昇格(復旧時)EADs Tool・運用機能によるサーバ追加・レンジ単位にデータ転送復旧サーバ復旧レンジ転送速度
© Hitachi, Ltd. 2013. All rights reserved. 31マスタ昇格(復旧時)EADs Tool・運用機能によるサーバ追加・レンジ単位にデータ転送復旧サーバ復旧レンジ転送速度
© Hitachi, Ltd. 2013. All rights reserved. 32マスタ昇格(復旧時)EADs Tool・サーバを追加しマスタを切り替える復旧
© Hitachi, Ltd. 2013. All rights reserved. 33整合性と一貫性インメモリデータグリッドの要素技術
© Hitachi, Ltd. 2013. All rights reserved. 34整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える整合性と一貫性Foo=AFoo=AFoo=AGet FooGet Foo...
© Hitachi, Ltd. 2013. All rights reserved. 35インメモリデータグリッドの要素技術一貫性の3つの課題
© Hitachi, Ltd. 2013. All rights reserved. 36①複製順序不正による不整合一貫性の3つの課題
© Hitachi, Ltd. 2013. All rights reserved. 37①通信遅延⇒複製順序不正⇒不整合⇒マスタ昇格(永久的障害時)⇒一貫性?①Put Foo A①Foo=A①Foo=B①Foo=A②Put Foo B②Foo...
© Hitachi, Ltd. 2013. All rights reserved. 38一貫性の3つの課題②複製処理失敗による不整合
© Hitachi, Ltd. 2013. All rights reserved. 39②一時的障害(サーバ、ネットワーク)⇒複製処理失敗⇒不整合⇒マスタ昇格(永久的障害時)⇒一貫性?CAS Bar 0 1Bar=01Bar=01Bar=0失...
© Hitachi, Ltd. 2013. All rights reserved. 40③スプリットブレインによる不整合一貫性の3つの課題
© Hitachi, Ltd. 2013. All rights reserved. 41③L2スイッチの障害⇒ネットワーク分断⇒複数マスタ⇒一貫性?①Put Foo A②Put Foo B①Foo=A②Foo=B②Foo=Bマスタはこのサーバ...
© Hitachi, Ltd. 2013. All rights reserved. 42インメモリデータグリッドの要素技術参考
© Hitachi, Ltd. 2013. All rights reserved. 43インメモリデータグリッドの要素技術ゴシッププロトコル~結果整合性の技術~
© Hitachi, Ltd. 2013. All rights reserved. 44ゴシッププロトコル・サーバ間で情報交換・古いデータは新しいデータで上書き・マスタとスレーブの値がそのうち同じ(結果整合性)・最新の値が見えるとは限らない整...
© Hitachi, Ltd. 2013. All rights reserved. 45インメモリデータグリッドの要素技術リードリペア~結果整合性の技術~
© Hitachi, Ltd. 2013. All rights reserved. 46リードリペア・読み込み処理時に複数のサーバからデータを取得・古いデータは新しいデータで上書き・マスタとスレーブの値がそのうち同じ(結果整合性)・最新の値が...
© Hitachi, Ltd. 2013. All rights reserved. 47インメモリデータグリッドの要素技術まとめ
© Hitachi, Ltd. 2013. All rights reserved. 48インメモリデータグリッドの要素技術要素技術・コンシステントハッシング・レプリケーション・マスタ昇格・ゴシッププロトコル・リードリペア一貫性の3つの課題①複...
© Hitachi, Ltd. 2013. All rights reserved.強一貫性への挑戦!スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
© Hitachi, Ltd. 2013. All rights reserved. 50強一貫性への挑戦!解決へのアプローチ
© Hitachi, Ltd. 2013. All rights reserved. 51解決へのアプローチ①複製順序不正による不整合②複製処理失敗による不整合③スプリットブレインによる不整合分散合意アルゴリズムPaxos*の適用* The P...
© Hitachi, Ltd. 2013. All rights reserved. 52強一貫性への挑戦!Paxosとは
© Hitachi, Ltd. 2013. All rights reserved.Paxosとは53サーバの集合が同じ処理を同じ順番で実行するためのアルゴリズムAtomic Broadcast1番目の処理2番目の処理i番目の処理put(k1,...
© Hitachi, Ltd. 2013. All rights reserved.Paxosとは54Proposer:1. i番目の処理を提案Acceptor:2. Acceptor間で過半数承認(i番目の処理を合意)3. i番目の処理を実行...
© Hitachi, Ltd. 2013. All rights reserved. 55強一貫性への挑戦!一貫性保証のための3つの実装
© Hitachi, Ltd. 2013. All rights reserved. 56一貫性保証のための3つの実装①複製順序不正による不整合の回避
© Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避57Proposer:マスタを持つサーバAcceptor:マスタ、スレーブ1、スレーブ2を持つサーバ+スペア*×2実行キュー実行...
© Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避58Proposer:i番目の処理を提案Acceptor:Acceptor間で過半数承認(i番目の処理を合意)実行キュー実行スレ...
© Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避59Acceptor:i番目の処理を実行”①複製順序不正による不整合”は発生しない!実行キュー実行スレッドマスタサーバ1スレーブ...
© Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避60サーバの集合が同じ処理を同じ順番で実行する同じ処理ができなければ閉塞(一貫性>可用性)実行キュー実行スレッドマスタサーバ1ス...
© Hitachi, Ltd. 2013. All rights reserved. 61②複製処理失敗による不整合の対処一貫性保証のための3つの実装
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処62一時的障害(サーバ、ネットワーク)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処63Proposer:i番目の処理を提案Acceptor:Acceptor間で過半数承認(i番目の処理を合意)実行キュー実行スレ...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処64Acceptor:i番目の処理を実行実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処65不整合実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレ...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処66Proposer:i+1番目の処理を提案Acceptor:Acceptor間で過半数承認(i+1番目の処理を合意)実行キュー...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処67Acceptor:FillGapsをおこなってからi+1番目の処理を実行実行キュー実行スレッドマスタサーバ1スレーブ1スレー...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処68不整合永久的障害によるマスタ昇格実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2マスタスレーブ2マスタ...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処69Acceptor:マスタ昇格後はFillGapsをおこなってからgetを受付”②複製処理失敗による不整合”が発生しても一貫性...
© Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処70実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2マスタスレーブ2マスタサーバ3スレーブ1スレーブ2マス...
© Hitachi, Ltd. 2013. All rights reserved. 71③スプリットブレインによる不整合の対処一貫性保証のための3つの実装
© Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処72L2スイッチの障害実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサー...
© Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処73実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレ...
© Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処74実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレ...
© Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処75実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレ...
© Hitachi, Ltd. 2013. All rights reserved.マスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2③スプリットブレインによる不整合の対処76実行キュー実行スレッドマスタサーバ3マスタマスタマ...
© Hitachi, Ltd. 2013. All rights reserved.マスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2③スプリットブレインによる不整合の対処77実行キュー実行スレッドマスタサーバ3マスタマスタマ...
© Hitachi, Ltd. 2013. All rights reserved. 78強一貫性への挑戦!まとめ
© Hitachi, Ltd. 2013. All rights reserved. 79強一貫性への挑戦!Paxos・サーバの集合が同じ処理を同じ順番で実行するためのアルゴリズム一貫性保証のための3つの実装①複製順序不正による不整合の回避②複...
© Hitachi, Ltd. 2013. All rights reserved.© Hitachi, Ltd. 2013. All rights reserved. 80お知らせ12年10月から新連載がスタート!□ 毎月、日立のデータベース...
© Hitachi, Ltd. 2013. All rights reserved.• Javaは,Oracle Corporation 及びその子会社,関連会社の米国及びその他の国における登録商標です。• その他、記載の会社名、製品名は、それ...
© Hitachi, Ltd. 2013. All rights reserved.株式会社 日立製作所 情報・通信システム社スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品ITプラットフォーム事業本部 開発統括本部20...
© Hitachi, Ltd. 2013. All rights reserved. 83
Upcoming SlideShare
Loading in …5
×

C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda

1,183 views

Published on

Published in: Technology
  • Be the first to comment

C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda

  1. 1. © Hitachi, Ltd. 2013. All rights reserved.株式会社 日立製作所 情報・通信システム社スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品ITプラットフォーム事業本部 開発統括本部2013/05/30梅田多一db tech showcase 大阪 2013
  2. 2. © Hitachi, Ltd. 2013. All rights reserved.自己紹介
  3. 3. © Hitachi, Ltd. 2013. All rights reserved. 2DB Onlinehttp://enterprisezine.jp/dbonline/detail/39912000年入社・Cosminexus開発・Cosminexusテクニカルサポート仕事のスタイル・TTP・GNN
  4. 4. © Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドって何だ?Contentsインメモリデータグリッドの要素技術強一貫性への挑戦!スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
  5. 5. © Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドって何だ?スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
  6. 6. © Hitachi, Ltd. 2013. All rights reserved. 5インメモリデータグリッドって何だ?登場の背景
  7. 7. © Hitachi, Ltd. 2013. All rights reserved. 6登場の背景・発信データの爆発的増加(Big Data)・データを扱うミドルウェアへの要件として大量発信データの高速処理、リアルタイム分析、大量蓄積データの高速検索、、・インメモリデータグリッド、複合イベント処理、超高速DB、、Big Dataモノ の発信人 の発信電力メーター運行情報カーナビGPS監視映像環境・気象データ設備監視物流トレースICカード利用診断画像・電子カルテデータベースメール・オフィス文書つぶやきSNS通話ログスマートフォン人の移動ネット購入コンテンツダウンロード動画・画像・音声
  8. 8. © Hitachi, Ltd. 2013. All rights reserved. 7日立の取り組みインメモリデータグリッドって何だ?
  9. 9. © Hitachi, Ltd. 2013. All rights reserved. 8日立の取り組み①uCosminexus Elastic Application Data store(以下EADs)(C22)②uCosminexus Stream Data Platform(B14)③Hitachi Advanced Data Binder プラットフォーム(D24)現場の状況をいち早く把握問題の解決新たな価値の提供データ修理指示売り場への指示データ③大量蓄積データの高速検索①大量発信データの高速処理②大量発信データのリアルタイム分析
  10. 10. © Hitachi, Ltd. 2013. All rights reserved. 9インメモリデータグリッドって何だ?日立の案件
  11. 11. © Hitachi, Ltd. 2013. All rights reserved. 10日立の案件(電力)工場オフィス戸建検針値1日分スマートメータ収集サーバから出力される大量の検針値(30分値)を、一定期間(40日)分DBに格納したい。大量の検針値を高速に受信当日分メモリ保持、日次ジョブ実行による一日分ファイル出力、一括DBロード
  12. 12. © Hitachi, Ltd. 2013. All rights reserved. 11日立の案件(通信)メディエーション交換機から出力される大量のRawCDRを、課金システムや帯域制御システム向けのCDRに編集したい。RawCDRCDRRawCDR:接続開始/一定時間経過/HO発生/接続終了などのタイミングで出力される、接続ID、接続時間、通信量などの情報。CDR:同一の接続に対する分割情報であるRawCDRを結合(通信量の合算など)した情報。大量の接続情報を高速に受信同一接続のデータ集合をイベントドリブンに編集
  13. 13. © Hitachi, Ltd. 2013. All rights reserved. 12インメモリデータグリッドって何だ?インメモリデータグリッドの3つの特徴
  14. 14. © Hitachi, Ltd. 2013. All rights reserved. 13インメモリデータグリッドの3つの特徴①インメモリKVSである
  15. 15. © Hitachi, Ltd. 2013. All rights reserved. 14インメモリデータグリッドの3つの特徴①インメモリKVS*である・一意に識別可能な「キー」とそれに対応する「値」で構成されるデータを保持するインメモリストア・レスポンス性能* KVS: Key Value StoreApplication Server インメモリKVSKey ValueFoo ABar 0Baz A,0
  16. 16. © Hitachi, Ltd. 2013. All rights reserved. 15インメモリデータグリッドの3つの特徴②分散している
  17. 17. © Hitachi, Ltd. 2013. All rights reserved. 16インメモリデータグリッドの3つの特徴②分散している・複数サーバのメモリ上にデータを分散配置・スループット性能と拡張性Key ValueFoo ABar 0Key ValueBaz A,0Application Serverインメモリ分散KVS
  18. 18. © Hitachi, Ltd. 2013. All rights reserved. 17インメモリデータグリッドの3つの特徴③実行できる
  19. 19. © Hitachi, Ltd. 2013. All rights reserved. 18インメモリデータグリッドの3つの特徴③実行できる・同時に使うデータを同じ場所に格納する(Grouping*)・ユーザロジックの分散実行(Distributed Code Execution*)・ネットワークトラフィックの削減とCPUの活用* JSR 347: Data Grids for the JavaTM PlatformKey ValueG1:Foo AG1:Bar 0G1:Baz A,0Key ValueG2:Foo BG2:Bar 1G2:Baz B,1Application Serverインメモリデータグリッドグループ処理ユーザロジック
  20. 20. © Hitachi, Ltd. 2013. All rights reserved. 19まとめインメモリデータグリッドって何だ?
  21. 21. © Hitachi, Ltd. 2013. All rights reserved. 20大量発信データの高速処理(レスポンス、スループット、スケールアウト)を実現するために以下の特徴を持つもの・インメモリKVSである・分散している・実行できるインメモリデータグリッドって何だ?
  22. 22. © Hitachi, Ltd. 2013. All rights reserved.インメモリデータグリッドの要素技術(分散基盤編 )スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
  23. 23. © Hitachi, Ltd. 2013. All rights reserved. 22インメモリデータグリッドの要素技術コンシステントハッシング~分散の技術~
  24. 24. © Hitachi, Ltd. 2013. All rights reserved. 23コンシステントハッシング・サーバは232の範囲に等分配置・Keyのハッシュ値からマスタの保存先を決定EADs Tool231-1 | -231Put Foo AレンジHash(Foo)マスタサーバ
  25. 25. © Hitachi, Ltd. 2013. All rights reserved. 24インメモリデータグリッドの要素技術レプリケーション~冗長化の技術~
  26. 26. © Hitachi, Ltd. 2013. All rights reserved. 25レプリケーション・多重度定義に従いデータを複製・高速化のため非同期EADs Tool231-1 | -231Put Foo AレンジHash(Foo)スレーブ1スレーブ2マスタサーバ
  27. 27. © Hitachi, Ltd. 2013. All rights reserved. 26レプリケーション・1サーバは複数レンジのデータを保持EADs Tool231-1 | -231スレーブ1スレーブ2マスタ
  28. 28. © Hitachi, Ltd. 2013. All rights reserved. 27インメモリデータグリッドの要素技術マスタ昇格~耐障害性の技術~
  29. 29. © Hitachi, Ltd. 2013. All rights reserved. 28マスタ昇格(障害時)・ハートビートおよびヘルスチェックによる障害検知・サーバを切り離しマスタを切り替えるEADs Tool231-1 | -231スレーブ1→マスタ障害
  30. 30. © Hitachi, Ltd. 2013. All rights reserved. 29マスタ昇格(復旧時)・運用機能によるサーバ追加・レンジ単位にデータ転送EADs Tool復旧サーバ復旧レンジ転送速度
  31. 31. © Hitachi, Ltd. 2013. All rights reserved. 30マスタ昇格(復旧時)EADs Tool・運用機能によるサーバ追加・レンジ単位にデータ転送復旧サーバ復旧レンジ転送速度
  32. 32. © Hitachi, Ltd. 2013. All rights reserved. 31マスタ昇格(復旧時)EADs Tool・運用機能によるサーバ追加・レンジ単位にデータ転送復旧サーバ復旧レンジ転送速度
  33. 33. © Hitachi, Ltd. 2013. All rights reserved. 32マスタ昇格(復旧時)EADs Tool・サーバを追加しマスタを切り替える復旧
  34. 34. © Hitachi, Ltd. 2013. All rights reserved. 33整合性と一貫性インメモリデータグリッドの要素技術
  35. 35. © Hitachi, Ltd. 2013. All rights reserved. 34整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える整合性と一貫性Foo=AFoo=AFoo=AGet FooGet Foo→A→A
  36. 36. © Hitachi, Ltd. 2013. All rights reserved. 35インメモリデータグリッドの要素技術一貫性の3つの課題
  37. 37. © Hitachi, Ltd. 2013. All rights reserved. 36①複製順序不正による不整合一貫性の3つの課題
  38. 38. © Hitachi, Ltd. 2013. All rights reserved. 37①通信遅延⇒複製順序不正⇒不整合⇒マスタ昇格(永久的障害時)⇒一貫性?①Put Foo A①Foo=A①Foo=B①Foo=A②Put Foo B②Foo=B②Foo=B②Foo=A遅延一貫性の3つの課題整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える
  39. 39. © Hitachi, Ltd. 2013. All rights reserved. 38一貫性の3つの課題②複製処理失敗による不整合
  40. 40. © Hitachi, Ltd. 2013. All rights reserved. 39②一時的障害(サーバ、ネットワーク)⇒複製処理失敗⇒不整合⇒マスタ昇格(永久的障害時)⇒一貫性?CAS Bar 0 1Bar=01Bar=01Bar=0失敗成功CAS: Compare and Swap一貫性の3つの課題整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える
  41. 41. © Hitachi, Ltd. 2013. All rights reserved. 40③スプリットブレインによる不整合一貫性の3つの課題
  42. 42. © Hitachi, Ltd. 2013. All rights reserved. 41③L2スイッチの障害⇒ネットワーク分断⇒複数マスタ⇒一貫性?①Put Foo A②Put Foo B①Foo=A②Foo=B②Foo=Bマスタはこのサーバだ!マスタはこのサーバだ!スプリット一貫性の3つの課題整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える
  43. 43. © Hitachi, Ltd. 2013. All rights reserved. 42インメモリデータグリッドの要素技術参考
  44. 44. © Hitachi, Ltd. 2013. All rights reserved. 43インメモリデータグリッドの要素技術ゴシッププロトコル~結果整合性の技術~
  45. 45. © Hitachi, Ltd. 2013. All rights reserved. 44ゴシッププロトコル・サーバ間で情報交換・古いデータは新しいデータで上書き・マスタとスレーブの値がそのうち同じ(結果整合性)・最新の値が見えるとは限らない整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える
  46. 46. © Hitachi, Ltd. 2013. All rights reserved. 45インメモリデータグリッドの要素技術リードリペア~結果整合性の技術~
  47. 47. © Hitachi, Ltd. 2013. All rights reserved. 46リードリペア・読み込み処理時に複数のサーバからデータを取得・古いデータは新しいデータで上書き・マスタとスレーブの値がそのうち同じ(結果整合性)・最新の値が見えるとは限らない(確度を調整可能(QUORUM))整合性:マスタとスレーブの値が同じ一貫性:すべてのクライアントから最新の値が見える
  48. 48. © Hitachi, Ltd. 2013. All rights reserved. 47インメモリデータグリッドの要素技術まとめ
  49. 49. © Hitachi, Ltd. 2013. All rights reserved. 48インメモリデータグリッドの要素技術要素技術・コンシステントハッシング・レプリケーション・マスタ昇格・ゴシッププロトコル・リードリペア一貫性の3つの課題①複製順序不正による不整合②複製処理失敗による不整合③スプリットブレインによる不整合
  50. 50. © Hitachi, Ltd. 2013. All rights reserved.強一貫性への挑戦!スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品
  51. 51. © Hitachi, Ltd. 2013. All rights reserved. 50強一貫性への挑戦!解決へのアプローチ
  52. 52. © Hitachi, Ltd. 2013. All rights reserved. 51解決へのアプローチ①複製順序不正による不整合②複製処理失敗による不整合③スプリットブレインによる不整合分散合意アルゴリズムPaxos*の適用* The Part-Time ParliamentLESLIE LAMPORT, 1998
  53. 53. © Hitachi, Ltd. 2013. All rights reserved. 52強一貫性への挑戦!Paxosとは
  54. 54. © Hitachi, Ltd. 2013. All rights reserved.Paxosとは53サーバの集合が同じ処理を同じ順番で実行するためのアルゴリズムAtomic Broadcast1番目の処理2番目の処理i番目の処理put(k1,v1)Server1 Server2 Server3put(k1,v1) put(k1,v1)remove(k1) remove(k1) remove(k1)put(k1,v2) put(k1,v2) put(k1,v2)キー バリューk1 v2整合
  55. 55. © Hitachi, Ltd. 2013. All rights reserved.Paxosとは54Proposer:1. i番目の処理を提案Acceptor:2. Acceptor間で過半数承認(i番目の処理を合意)3. i番目の処理を実行※i-1番目までの処理を実行していなければ、i-1番目までの処理を他のAcceptorから取得して実行(FillGaps)
  56. 56. © Hitachi, Ltd. 2013. All rights reserved. 55強一貫性への挑戦!一貫性保証のための3つの実装
  57. 57. © Hitachi, Ltd. 2013. All rights reserved. 56一貫性保証のための3つの実装①複製順序不正による不整合の回避
  58. 58. © Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避57Proposer:マスタを持つサーバAcceptor:マスタ、スレーブ1、スレーブ2を持つサーバ+スペア*×2実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2put(k,v)ストア* スペア:過半数承認用(2多重障害対応)。ストア操作なし。レンジ用Paxos
  59. 59. © Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避58Proposer:i番目の処理を提案Acceptor:Acceptor間で過半数承認(i番目の処理を合意)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2put(k,v)ストアiokokokokokレンジ用Paxos
  60. 60. © Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避59Acceptor:i番目の処理を実行”①複製順序不正による不整合”は発生しない!実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2put(k,v)ストアiiiレンジ用Paxos
  61. 61. © Hitachi, Ltd. 2013. All rights reserved.①複製順序不正による不整合の回避60サーバの集合が同じ処理を同じ順番で実行する同じ処理ができなければ閉塞(一貫性>可用性)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2put(k,v)ストアiiiレンジ用Paxos失敗
  62. 62. © Hitachi, Ltd. 2013. All rights reserved. 61②複製処理失敗による不整合の対処一貫性保証のための3つの実装
  63. 63. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処62一時的障害(サーバ、ネットワーク)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2cas(k,v1,v2)ストア一時的障害レンジ用Paxos
  64. 64. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処63Proposer:i番目の処理を提案Acceptor:Acceptor間で過半数承認(i番目の処理を合意)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアicas(k,v1,v2)一時的障害okokokokレンジ用Paxos
  65. 65. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処64Acceptor:i番目の処理を実行実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアiicas(k,v1,v2)一時的障害レンジ用Paxos
  66. 66. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処65不整合実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアiicas(k,v2,v3)不整合レンジ用Paxos
  67. 67. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処66Proposer:i+1番目の処理を提案Acceptor:Acceptor間で過半数承認(i+1番目の処理を合意)実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアiii+1cas(k,v2,v3)不整合レンジ用Paxosokokokokok
  68. 68. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処67Acceptor:FillGapsをおこなってからi+1番目の処理を実行実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアiiii+1i+1i+1FillGapscas(k,v2,v3)不整合レンジ用Paxos
  69. 69. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処68不整合永久的障害によるマスタ昇格実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2マスタスレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2ストアiiマスタ昇格マスタサーバ5スレーブ1スレーブ2永久的障害不整合レンジ用Paxosget(k)
  70. 70. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処69Acceptor:マスタ昇格後はFillGapsをおこなってからgetを受付”②複製処理失敗による不整合”が発生しても一貫性を保証する!実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2マスタスレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2get(k)ストアiiiFillGapsマスタ昇格マスタサーバ5スレーブ1スレーブ2永久的障害レンジ用Paxos不整合
  71. 71. © Hitachi, Ltd. 2013. All rights reserved.②複製処理失敗による不整合の対処70実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ2マスタスレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2get(k)ストアiiFillGapsマスタ昇格マスタサーバ5スレーブ1スレーブ2永久的障害レンジ用Paxosサーバの集合が同じ処理を同じ順番で実行する同じ順番でできなければ閉塞(一貫性>可用性)不整合失敗
  72. 72. © Hitachi, Ltd. 2013. All rights reserved. 71③スプリットブレインによる不整合の対処一貫性保証のための3つの実装
  73. 73. © Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処72L2スイッチの障害実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアマスタサーバ2スレーブ1スレーブ2スプリット3×4×5×3×4×5×1×2×1×2×1×2×クラスタ用Paxos
  74. 74. © Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処73実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアマスタサーバ2スレーブ1スレーブ2スプリット3×4×5×3×4×5×1×2×1×2×1×2×Proposer:障害を検知したサーバAcceptor:すべてのサーバクラスタ用Paxos
  75. 75. © Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処74実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアマスタサーバ2スレーブ1スレーブ2スプリット3×4×5×3×4×5×1×2×1×2×1×2×Proposer:i番目の処理を提案Acceptor:Acceptor間で過半数承認(i番目の処理を合意)okokokiiiokokoki+1i+1i+1okokiiokoki+1i+1okoki+2i+2合意クラスタ用Paxos
  76. 76. © Hitachi, Ltd. 2013. All rights reserved.③スプリットブレインによる不整合の対処75実行キュー実行スレッドマスタサーバ1スレーブ1スレーブ2マスタサーバ3スレーブ1スレーブ2マスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアマスタサーバ2スレーブ1スレーブ2スプリット3×4×5×3×4×5×1×2×1×2×1×2×Acceptor:i番目の処理を実行okokiiokoki+1i+1okoki+2i+2クラスタ用Paxosii+1ii+1ii+1
  77. 77. © Hitachi, Ltd. 2013. All rights reserved.マスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2③スプリットブレインによる不整合の対処76実行キュー実行スレッドマスタサーバ3マスタマスタマスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアスプリット3×4×5×3×4×5×1×2×1×2×1×2×クラスタ用Paxosget(k)get(k)okokiiokoki+1i+1okoki+2i+2マスタ昇格FillGapsii+1ii+1ii+1不整合複数マスタ不整合不整合
  78. 78. © Hitachi, Ltd. 2013. All rights reserved.マスタサーバ1スレーブ1スレーブ2マスタサーバ2スレーブ1スレーブ2③スプリットブレインによる不整合の対処77実行キュー実行スレッドマスタサーバ3マスタマスタマスタサーバ4スレーブ1スレーブ2マスタサーバ5スレーブ1スレーブ2ストアスプリット3×4×5×3×4×5×1×2×1×2×1×2×クラスタ用Paxosget(k)get(k)okokiiokoki+1i+1okoki+2i+2マスタ昇格FillGaps失敗成功ii+1ii+1ii+1Acceptor:過半数サーバ縮退の提案が通らなければgetを拒否”③スプリットブレインによる不整合”が発生しても一貫性を保証する!不整合不整合
  79. 79. © Hitachi, Ltd. 2013. All rights reserved. 78強一貫性への挑戦!まとめ
  80. 80. © Hitachi, Ltd. 2013. All rights reserved. 79強一貫性への挑戦!Paxos・サーバの集合が同じ処理を同じ順番で実行するためのアルゴリズム一貫性保証のための3つの実装①複製順序不正による不整合の回避②複製処理失敗による不整合の対処③スプリットブレインによる不整合の対処
  81. 81. © Hitachi, Ltd. 2013. All rights reserved.© Hitachi, Ltd. 2013. All rights reserved. 80お知らせ12年10月から新連載がスタート!□ 毎月、日立のデータベースの最新情報をお伝えします。DBOnline 日立のデータベース 検索日立の国産データベースシリーズが紹介されている「国産」タブが新設!日立の「Dr.SQL」登場!-土田正士さん日本データベース学会 副会長50年後には、データベースはなくなっている?!日立のデータベース開発基地に潜入開発者に突撃インタビュー© Hitachi, Ltd. 2013. All rights reserved.
  82. 82. © Hitachi, Ltd. 2013. All rights reserved.• Javaは,Oracle Corporation 及びその子会社,関連会社の米国及びその他の国における登録商標です。• その他、記載の会社名、製品名は、それぞれの会社の商標または登録商標です。• 製品の改良により予告なく記載されている仕様が変更になることがあります。他社商品名、商標等の引用に関する表示
  83. 83. © Hitachi, Ltd. 2013. All rights reserved.株式会社 日立製作所 情報・通信システム社スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品ITプラットフォーム事業本部 開発統括本部2013/05/30梅田多一ENDdb tech showcase 大阪 2013
  84. 84. © Hitachi, Ltd. 2013. All rights reserved. 83

×