LoginSignup
1
1

More than 5 years have passed since last update.

ROMAのroutingに関して

Last updated at Posted at 2015-12-10

ROMAのroutingに関しての説明です
704c063c-ccdc-a425-b9f6-bfe84f8a1aad.png

routinファイル

routingファイルとは

  • ROMAのクラスター構成を記述した設定ファイル
  • これをもとにデータの分散などを行う

routingファイル作成

$ mkroute [options] [nodeIDs]
Ex.) mkroute 192.168.33.11_10001 192.168.33.11_10002 192.168.33.12_10001 192.168.33.12_10002
  • mkrouteコマンドでroutingファイルが作成されます

routingファイル構成

  • routingファイルの内容は各ファイルで全て同じ内容になっています
  • ROMAが起動するときに指定したaddressとport No.のファイル名のroutignファイルを読み込みます
routing_file
--- !ruby/object:Roma::Routing::RoutingData
dgst_bits: 32 # 2**32 = 4294967296
div_bits: 9 # 2**9 = 512
rn: 2 # redundancy
nodes:
- 192.168.33.11_10001
- 192.168.33.11_10002
- 192.168.33.12_10001
- 192.168.33.12_10002
v_idx:
  0:
  - 192.168.33.11_10001
  - 192.168.33.12_10001
  8388608:
  - 192.168.33.12_10002
  - 192.168.33.11_10001
  16777216:
  - 192.168.33.12_10001
  - 192.168.33.11_10002
  .
  .
  .
v_clk:
  0: 0
  8388608: 0
  16777216: 0
  .
  .
  .
  • dgts_bits

    • データ分散の際に使用するROMAのHash tableをいくつに分散するかの設定
      (データ振り分けの際に2^^32個分の空間がある)
    • 実際の値は2**(設定した数)
    • デフォルト値は32(4294967296)
  • div_bits

    • vnodesの数を示す
      (dgst_bitsで用意した2^^32の空間をこのvnodesの個数に振り分ける)
    • 実際の値は2**(設定した数)
    • デフォルト値は9(512)
  • rn

    • 冗長度を表す
    • デフォルト値は2
  • v_idx

    • それぞれのvnodesの担当nodeを示す
    • 上の行からprimary, secondary1, secondary2・・・となる
    • 同serverのインスタンスが同じvnodesにアサインされることはない
      (--duplicate_in_hostオプションを使えば可能)
  • v_clk

    • vnodes毎の追記回数を示す
    • 初期値は0

現在のrouting情報の取得

routingdumpコマンドで取得することができます
> routingdump [yaml|json|yamlbytes|bin]

routing情報の更新

  • 'localhost_10001', 'localhost_10002', 'localhost_10003'で構築しているクラスターで'localhost_10003'が落ちた場合
routingディレクトリ
$ ls -l
total 124
-rw-r--r-- 1 root root 25471 Dec 10 03:07 localhost_10001.route   # 初期ファイル
-rw-r--r-- 1 root root 19453 Dec 10 05:31 localhost_10001.route.1 # 差分ファイル1(10001)
-rw-r--r-- 1 root root 25471 Dec 10 03:07 localhost_10002.route   # 初期ファイル
-rw-r--r-- 1 root root 19453 Dec 10 05:31 localhost_10002.route.1 # 差分ファイル1(10002)
-rw-r--r-- 1 root root 25471 Dec 10 03:07 localhost_10003.route   # 初期ファイル
-rw-r--r-- 1 root root     0 Dec 10 03:07 localhost_10003.route.1
  • 差分ファイルはファイル名の末尾に.(数字)が追加されたファイルです
    • 今回はlocalhost_10003は落ちたインスタンスなので差分ファイルは0bytes
    • localhost_10001とlocalhost10002はroutingのupdateが起きたので差分ファイルに変更情報が保存されています
  • 差分が増えていくにつれ、'.1', '.2'と増えていきます
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1