[Groonga-commit] droonga/droonga-engine.wiki at ebf1cd9 [master] Created CatalogDistribution (markdown)

アーカイブの一覧に戻る

Kouhei Sutou null+****@clear*****
Mon May 26 14:40:48 JST 2014


Kouhei Sutou	2014-05-26 14:40:48 +0900 (Mon, 26 May 2014)

  New Revision: ebf1cd993a66c499428ca87ddfa73d95c25bb5c1
  https://github.com/droonga/droonga-engine/wiki/CatalogDistribution/ebf1cd993a66c499428ca87ddfa73d95c25bb5c1

  Message:
    Created CatalogDistribution (markdown)

  Added files:
    CatalogDistribution.md

  Added: CatalogDistribution.md (+31 -0) 100644
===================================================================
--- /dev/null
+++ CatalogDistribution.md    2014-05-26 14:40:48 +0900 (93e42fe)
@@ -0,0 +1,31 @@
+# catalog.jsonの配布方法案
+
+新しくノードを追加するとき、どこのレプリカにいれるかとかどのくらいボリュームを作るかは自明ではない。そのため、ユーザーが明示的に指定する必要がある。
+
+このとき、すべてのノードでcatalog.jsonを更新するのは大変なので、クラスター内のcatalog.jsonを簡単に更新できる仕組みが欲しい。このメモはそれの実装方法案である。この案ではserfを活用する。
+
+## 前提
+
+  * ノードの追加の指示はクラスター外から実施する。
+
+クラスター内の各ノードはcatalog.jsonを知っているが、クラスター外のマシンはcatalog.jsonを知らない。よって、最新のcatalog.jsonを取得する必要がある。
+
+## catalog.jsonの取得
+
+serfのカスタムクエリーを使って、各ノードからcatalog.jsonを取得する。流れは次の通りである。
+
+  1. catalog.jsonを取得したいマシン上でWebサーバーを立ち上げる。
+  2. serfのカスタムクエリーを実行する。そのとき、パラメーターとして立ちあげたWebサーバーのURLを渡す。(各ノードからWebサーバーが見えないといけないという制限がつく。)
+  3. 各ノードはパラメーターに指定されたWebサーバーに自分のcatalog.jsonをPOSTする。
+  4. catalog.jsonを取得したいマシン上には各ノードからcatalog.jsonが届く。その中からeffectiveDateが一番新しいcatalog.jsonを最新のcatalog.jsonとして利用する。
+
+## catalog.jsonの配布
+
+serfのカスタムクエリーを使って、各ノードへcatalog.jsonを配布する。流れは次の通りである。
+
+  1. catalog.jsonを配布したいマシン上でcatalog.jsonを作る。
+  2. catalog.jsonを配布したいマシン上でWebサーバーを立ち上げる。
+  3. serfのカスタムクエリーを実行する。そのとき、パラメーターとして立ちあげたWebサーバーのURLを渡す。(各ノードからWebサーバーが見えないといけないという制限がつく。)
+  4. 各ノードはパラメーターに指定されたWebサーバーにGETしてcatalog.jsonをダウンロードする。
+  5. 各ノードはダウンロードしたcatalog.jsonを使って動き出す。
+
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る