Skip to content

Castoro::gateway function details

lamatsujun edited this page Mar 27, 2012 · 6 revisions

Castoro::Gateway 機能詳細

Home > Components >

ページ目次

Gateway は主機能「 Basket 情報のキャッシュ」「 Peer の稼働状況監視」のほかに幾つかの機能を有している。
Gateway の機能を以下の二つに大別して説明する。

  • UDP リクエストに応じた機能
  • TCP リクエストに応じた機能

UDP リクエストに応じた機能

Gateway は、特定の UDP ポートでリクエストを待ち受けており、受信したパケットに応じた処理を実施する。

CREATE リクエスト ( CREATE 可能 Peer の紹介 )

  • 新しい Basket 作成要求。
    通常、CREATE リクエストは Client が新しい Basket を作成する際に Gateway へリクエストする。
    Gateway は CREATE リクエストを受信すると、「 新しい Basket を保存可能な Peer 一覧 」を Client へレスポンスする。
  • 「 新しい Basket を保存可能な Peer 」とは、以下の条件を満たす Peer の事である。
    • 一定時間 ( コンフィグ値: watchdog_limit ) 以内に ALIVE リクエストを送信してきている
    • Watchdog ステータスコードが 30 以上
    • CREATE リクエストで要求された ( Basket ) サイズ以上のキャパシティを持つ

GET リクエスト

  • 既存 Basket の取得要求。
    Client から「 該当 Basket をどの Peer が有しているか 」を意味する GET リクエストを受信した場合、Gateway は条件により 2通りの振る舞いを行う。
    Gateway の内包するキャッシュが同情報を有している場合は、Gateway 自身が直接レスポンスを返す。

  • Gateway の内包するキャッシュが同情報を有していない場合は、Gateway 自身がレスポンスを返す事ができない。
    この場合、Gateway は Peer や他の Gateway が属しているアドレスにマルチキャスト送信する。

INSERT リクエスト

  • Peer に新しい Basket が保存された事を意味する通知。
    Gateway は INSERT リクエストを受けると、内包するキャッシュに Peer が有している Basket 情報を記憶する。
    記憶した Basket 情報は、前述の GET リクエスト処理時に反映される。

DROP リクエスト

  • Peer から既存 Basket の削除がされた事を意味する通知。
    Gateway は DROP リクエストを受けると、事前に記憶していた INSERT 情報を破棄する。

ALIVE リクエスト

  • Peer の稼働状況通知。
    ステータスコードと Peer のディスク空き容量を受け取る。
    Gateway は ALIVE リクエストを受け取ると該当 Peer の空き容量を更新し、更に該当 Peer が動作中であることを認識する。

ISLAND リクエスト

  • Island 単位での Peer の稼働状況通知。
    保存可能な Peer 数と Island 配下の Peer 群のディスク空き容量合計を受け取る。
    Gateway(Master) は ISLAND リクエストを受け取ると該当 ISLAND の空き容量を更新し、更に該当 ISLAND が動作中であることを認識する。

NOP リクエスト

  • 疎通確認リクエスト。 ( No Operation )
    NOP リクエストを受信した場合、何も実施せずに NOP レスポンスを返す。

TCP リクエストに応じた機能

Gateway は特定の TCP ポートでリクエストを待受けており、受信したパケットに応じた処理を実施する。

NOP リクエスト

  • 疎通確認リクエスト。 ( No Operation )
    NOP リクエストを受信した場合、何も実施せずに NOP レスポンスを返す。

ページTOPへ