SlideShare une entreprise Scribd logo
1  sur  22
ROMA   R akuten  O n- M emory  A rchitecture 楽天株式会社 楽天技術研究所 西澤無我| 2009年2月20日
ROMA について ,[object Object],[object Object],ROMA (key-value store)
ROMA の特徴 ROMA ,[object Object],[object Object],[object Object],エンドユーザ Web ( アプリケーション )  サーバ GET GET PUT
Consistent Hashing ,[object Object],[object Object],[object Object],[object Object],ROMA
Zero-hop  でのデータ探索  (1/2) ,[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ① データを  GET/PUT ③ 担当ノードから 値を  GET/PUT ② 担当ノードを計算 コーディネータ クライアント
Zero-hop  でのデータ探索  (2/2) ,[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ③ 担当ノードから値を  GET/PUT ② 担当ノードを計算 ① データを  GET/PUT クライアント
ROMA Client ,[object Object],[object Object],[object Object],[object Object],#!/usr/local/bin/ruby require ‘RClient’ rc = ROMA::Client.new rc.open(“roma0”, 3300) #   任意の  ROMA  プロセスを指定 rc[“muga”] = “data”   #  ROMA  にデータを  PUT data = rc[“muga”]   #  ROMA  からデータを  GET rc[“muga”] = nil   #  ROMA  からデータを  DELETE ※  Ruby  実装のクライアント  API  の例
Replication (1/2) ,[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ① 担当ノードに 値が  PUT ② 左右のノードにレプリカを  PUT
Replication (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ① 担当ノードに 値が  PUT ② 左右のノードにレプリカを  PUT
Replica Synchronization (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ① 担当ノードに 値が  PUT ② 左右のノードにレプリカを  PUT
Replica Synchronization (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ROMA 担当ノード ① 担当ノードに 値が  PUT ② 左右のノードにレプリカを  PUT
ノードの Join (1/3) ,[object Object],[object Object],[object Object],[object Object],[object Object],ROMA 新規ノード ① ブロードキャスト ② ROMA  ノードが応答
各ノードのデータ領域 LS P RS LS P RS LS P RS LS P RS ,[object Object],[object Object],[object Object],[object Object],冗長度  3 冗長度  3 ROMA
ノードの Join (2/3) ,[object Object],LS P RS LS P RS LS P RS LS P RS LS P RS ROMA
ノードの Join (3/3) LS P ,[object Object],LS P RS LS P RS P RS LS P RS LS RS ROMA
環情報の更新 ROMA ,[object Object],[object Object],[object Object]
障害ノードの切り離し ,[object Object],[object Object],ROMA 障害ノード
ノードの障害検知 (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ROMA
ノードの障害検知 (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],セカンダリー 担当ノード セカンダリー ① ② ③
障害ノードの切り離し ,[object Object],LS P LS P RS LS P RS P RS LS P RS LS RS 離脱ノード 離脱ノード 冗長度  2 冗長度  2 ROMA
永続化 ,[object Object],[object Object],[object Object],[object Object],[object Object],ROMA (key-value store) データ データ データ データ データ データ
まとめ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
 

Tendances (20)

Lagopus 0.2.2
Lagopus 0.2.2Lagopus 0.2.2
Lagopus 0.2.2
 
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 NagoyaOpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
OpenBSD/luna88k on LUNA-88K2, at OSC 2013 Nagoya
 
Xeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdkXeon dとlagopusと、pktgen dpdk
Xeon dとlagopusと、pktgen dpdk
 
OpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシンOpenIndiana+KVMによる仮想マシン
OpenIndiana+KVMによる仮想マシン
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
 
LoRa GPSトラッカー LGT92 ユーザーマニュアル
LoRa GPSトラッカー LGT92 ユーザーマニュアルLoRa GPSトラッカー LGT92 ユーザーマニュアル
LoRa GPSトラッカー LGT92 ユーザーマニュアル
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performance
 
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術今もう一度知ろう。 Solarisのコンテナ型仮想化技術
今もう一度知ろう。 Solarisのコンテナ型仮想化技術
 
OpenFlow
OpenFlowOpenFlow
OpenFlow
 
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
 
Pacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作るPacemaker+DRBDでHAクラスタを作る
Pacemaker+DRBDでHAクラスタを作る
 
LoRaWAN 土壌&ECセンサ - LSE01日本語ユーザーマニュアル
LoRaWAN 土壌&ECセンサ - LSE01日本語ユーザーマニュアルLoRaWAN 土壌&ECセンサ - LSE01日本語ユーザーマニュアル
LoRaWAN 土壌&ECセンサ - LSE01日本語ユーザーマニュアル
 
「Turtlebot3の紹介」 ROS Japan UG #10 勉強会
「Turtlebot3の紹介」 ROS Japan UG #10 勉強会「Turtlebot3の紹介」 ROS Japan UG #10 勉強会
「Turtlebot3の紹介」 ROS Japan UG #10 勉強会
 
Lagopus どれだけ速いのか
Lagopus どれだけ速いのかLagopus どれだけ速いのか
Lagopus どれだけ速いのか
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
 
Lagopus as open flow hybrid switch
Lagopus as open flow hybrid switchLagopus as open flow hybrid switch
Lagopus as open flow hybrid switch
 
Play PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessorPlay PSG music on LUNA-88K - Utilization of I/O prosessor
Play PSG music on LUNA-88K - Utilization of I/O prosessor
 
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
 
SDNソフトウェアスイッチlagopus for FreeBSD
SDNソフトウェアスイッチlagopus for FreeBSDSDNソフトウェアスイッチlagopus for FreeBSD
SDNソフトウェアスイッチlagopus for FreeBSD
 
LoRaWAN LiDAR ToF 距離センサLDDS12 日本語ユーザーマニュアル
 LoRaWAN LiDAR ToF 距離センサLDDS12 日本語ユーザーマニュアル LoRaWAN LiDAR ToF 距離センサLDDS12 日本語ユーザーマニュアル
LoRaWAN LiDAR ToF 距離センサLDDS12 日本語ユーザーマニュアル
 

En vedette

Devsumi2012フィードバック オープニング
Devsumi2012フィードバック オープニングDevsumi2012フィードバック オープニング
Devsumi2012フィードバック オープニング
Rakuten Group, Inc.
 

En vedette (6)

ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例
 
Roma rolling update
Roma rolling updateRoma rolling update
Roma rolling update
 
楽天におけるHadoop活用と、Big Dataのビジョン
楽天におけるHadoop活用と、Big Dataのビジョン楽天におけるHadoop活用と、Big Dataのビジョン
楽天におけるHadoop活用と、Big Dataのビジョン
 
楽天テクノロジーカンファレン2009 基調講演
楽天テクノロジーカンファレン2009 基調講演楽天テクノロジーカンファレン2009 基調講演
楽天テクノロジーカンファレン2009 基調講演
 
Devsumi2012フィードバック オープニング
Devsumi2012フィードバック オープニングDevsumi2012フィードバック オープニング
Devsumi2012フィードバック オープニング
 
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
データドリブン企業におけるHadoop基盤とETL -niconicoでの実践例-
 

Similaire à The Overall Architecture of ROMA

透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
Akira Kanaoka
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124
Kazuki Miura
 

Similaire à The Overall Architecture of ROMA (20)

ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
 
P2Pって何?
P2Pって何?P2Pって何?
P2Pって何?
 
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
 
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
構造化オーバーレイネットワークに適した分散双方向連結リストDDLL
 
NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07NPStudy LT Lagopus Router v19.07
NPStudy LT Lagopus Router v19.07
 
SORACOM UG 東海 #1 | これだけ知っていれば LoRaWAN & SORACOM Air for LoRaWAN ハンズオン
SORACOM UG 東海 #1 | これだけ知っていれば LoRaWAN & SORACOM Air for LoRaWAN ハンズオンSORACOM UG 東海 #1 | これだけ知っていれば LoRaWAN & SORACOM Air for LoRaWAN ハンズオン
SORACOM UG 東海 #1 | これだけ知っていれば LoRaWAN & SORACOM Air for LoRaWAN ハンズオン
 
ビルトインTTN LoRaWANゲートウェイ LPS8v2日本語ユーザーマニュアル
ビルトインTTN  LoRaWANゲートウェイ LPS8v2日本語ユーザーマニュアルビルトインTTN  LoRaWANゲートウェイ LPS8v2日本語ユーザーマニュアル
ビルトインTTN LoRaWANゲートウェイ LPS8v2日本語ユーザーマニュアル
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124
 
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
普及版8チャンネルLoRaWAN Pico Staion LPS8ユーザーマニュアル
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 
モーターを低速で定速で動かしてみる
モーターを低速で定速で動かしてみるモーターを低速で定速で動かしてみる
モーターを低速で定速で動かしてみる
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
Pandora FMS
Pandora FMSPandora FMS
Pandora FMS
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
Pandora FMS
Pandora FMSPandora FMS
Pandora FMS
 
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
Wiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラムWiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラム
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 

Dernier

Dernier (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

The Overall Architecture of ROMA

  • 1. ROMA R akuten O n- M emory A rchitecture 楽天株式会社 楽天技術研究所 西澤無我| 2009年2月20日
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

Notes de l'éditeur

  1. ROMA は P2P で自律的に複数のノードを管理。さらに、環状にノードを並べて管理している。 各ノードはユニークなハッシュ値をもつ
  2. ROMA ではデータの探索をクライアントが行う。 クライアントが ROMA に初めてアクセスした際、 ROMA から環情報を取得する。 この環の情報を利用して、 key の担当ノードを探索する。 このようなことができるのは、 ROMA を構成するノード数が、高々 1,000 台程度だからです。
  3. ROMA ではデータの探索をクライアントが行う。 クライアントが ROMA に初めてアクセスした際、 ROMA から環情報を取得する。 この環の情報を利用して、 key の担当ノードを探索する。 このようなことができるのは、 ROMA を構成するノード数が、高々 1,000 台程度だからです。
  4. その ROMA のハッシュテーブル(というか key-value store) 上のデータへアクセスする API を提供している。 アプリケーション開発者はこの ROMA クライアント API を利用することで、分散を意識せずに済む。 ROMA へデータを格納すると、実際には複数マシンのメモリ上にデータが格納される。
  5. ROMA ではデータが格納されるノードの両隣のノードにそのデータの複製が格納される。 この左右のノードはハッシュ値こそ近いが、物理的には近い場所というわけではない。 現時点ではそこまで考慮した実装ではないが、 DC にまたがっていることも考えられる。
  6. 同じデータの複製がある中で、基本的に単一のノードのみが、そのデータの PUT/GET を引き受ける
  7. 先ほどの例では、マスターのダウンをクライアントのアクセスがある前に ROMA が気づけた場合の規則 しかし、運悪く ROMA がノードのダウンに気づく前に、クライアントがそのノードにアクセスしてくる場合がある そのような場合は、ROMA はとりあえずダーティフラグ付きのデータをクライアントに返す