Skip to content

Instantly share code, notes, and snippets.

@rimms
Created October 3, 2012 07:35
Show Gist options
  • Save rimms/3825611 to your computer and use it in GitHub Desktop.
Save rimms/3825611 to your computer and use it in GitHub Desktop.
Jubatusシステム構成例検討

Jubatusプロセス構成パターン

「★」はやること。

(参考) standalone構成

  • standalone で利用するユースケースはそもそも無いかもしれなが、プロセスの配置パターンは以下の通り。
client keeper server zookeeper
A : 1 - A : 1 -
A : N - A : 1 -
A : 1 - B : 1 -
A : N - B : 1 -
  • serverプロセス を act /standby で冗長化する場合、適切なタイミングでのモデルの永続化が必要。
  • serverプロセス を act / act で冗長化する場合も、永続化が必要か。

分散環境構成

  • zookeeper

  • 冗長モードで利用する。

  • zookeeper と 各プロセス との同居ポリシーは? -> HBase等を確認★

  • server

  • keeper, zookeeper が所在を知ることになるので、同一筐体に複数プロセスなどでも自由でOK。

  • I/O や NW がボトルネックになるので、1サーバー1プロセスで、複数サーバーに分散させるのが一般的ですかね。

  • そもそも keeper がボトルネックだと、server はスッカスカになるんではなかろうか。

  • keeper がボトルネックではないと仮定すると、server をどんどんスケールアウトしていくような運用が想定される。

  • keeper ... 要検討/調査

  • client からのリクエストを server に必ず届けることを保証するか否か。

  • ユースケースを考えて、client からどのようにリクエストを受け付けるパターンがあるかを抽出すると、システム構成も検討しやすいかも★

  • client ... 要検討/調査

  • 利用シーンは大きく分けると以下。analyze と update の違いでもケースが違う。

  • stream的にリクエストからの一連の流れで、Jubatusへリクエストする。

  • Jubatusへのリクエストをキューイング。Jubatusへの処理は非同期で行う。

  • バッチ処理。ある特定の時間単位で大量にJubatusへリクエストする。

  • 利用シーンによって構成は変わる。-> ★ケースを洗い出す。

  • client と keeper の同居について ... 要検討/調査

  • client が zk を覗いてから keeper へリクエストを投げる場合は、別筐体・プロセス数不一致でも良い。

  • client は keeper の所在を知らなくても良いが、これだと、client の処理がネックになりそう。

  • jubatus(keeper)にアプリケーションの動作が引きずられないという意味では、こっちが健全なのかも。

  • ここを見ると、client から複数 keeper とあるが、あったっけか? -> 解決

  • client で keeper の所在を知る必要があるアプリであれば、keeper が増減するごとにアプリで何かしらする必要がある。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment