Skip to content
YUKI "Piro" Hiroshi edited this page Apr 4, 2014 · 12 revisions

現段階では見出しのみまとめる。

導入手順

  • 構成の検討(A案〜C案のすべてについて)
    • クラスタ構成
    • テーブル構成
  • コンピュータの準備、OSのインストール(AWSなどの場合は不要)
  • catalog.jsonの作成(A案〜C案のすべてについて)
  • ノードのセットアップ
    • workerプロセス用ノード
      • パッケージ管理システムによる導入
      • gemによる導入
      • npmによる導入
      • ログローテーションの設定
    • masterプロセス用ノード
      • パッケージ管理システムによる導入
      • gemによる導入
      • npmによる導入
      • ログローテーションの設定
    • LVS用ノード
  • 動作検証用データの準備
    • 投入するデータの取得(Wikipediaのデータのダウンロード)
    • データ投入用リクエストの作成(JSONSへ変換:XMLを読み込んでdroonga-client経由でリクエストを投げる場合は不要) Groonga互換コマンドで。
    • 検索クエリの作成(Wikipediaのアクセスログからそれらしいリクエストのパターンを作成する)
  • 動作の検証
    • データの投入
      • データ投入の実施(JSONSあるいはXML)
      • 投入されたデータの状態の確認
        • 期待通りスライスに分割(分散)されているかどうか
    • 検索機能の動作確認
      • 単一テーブルでの通常検索
      • 単一テーブルでの全文検索
      • 検索結果からの集約(ドリルダウン)
  • Groongaとの性能比較
    • Groongaの導入
    • データの投入
      • データ等入用コマンドの作成(JSONSへ変換、あるいはXMLを読み込んでリクエストを生成)
    • 単一テーブルでの通常検索
    • 単一テーブルでの全文検索
    • 検索結果からの集約(ドリルダウン)

運用手順

  • ノードの再起動
  • 投入済みデータのバックアップ(オリジナルデータは外部にある事を前提とする場合は省略可能)
  • catalog.jsonの変更
    • 新しいcatalog.jsonの作成
    • 既存のcatalog.jsonの置換
    • Droongaコマンドによるcatalog.jsonの更新(新バージョンの配布)
  • スキーマの変更
    • テーブルの追加
    • テーブルの削除
    • カラムの追加
    • カラムの削除
  • プラグインの変更
    • プラグインの有効化
    • プラグインの無効化
  • ボリュームの変更
    • ボリュームのaddressの変更
    • Single VolumeからContainer Volumeへのボリューム構成の変更
    • Container VolumeからSingle Volumeへのボリューム構成の変更
  • 新規ノードの追加
    • sliceの追加
    • replicaの追加
  • 既存ノードの切り離し
    • sliceの切り離し
    • replicaの切り離し
  • 既存ノードの差し替え(切り離し+追加で代替か?)
    • sliceの差し替え
    • replicaの差し替え
  • 障害対応
    • 死活監視の方法
    • 異常状態からの復旧
      • replicaの1つが停止した場合
      • sliceの1つが停止した場合
    • ログからの障害調査、ログの読み方