メインコンテンツまでスキップ

0006 — コピーホスティング 原子 DB リース コーディネート

コンテキスト​

実行中 コピープロファイル ホスト 正確に 1 個 ノード — 2 個ホスト 同プロファイル 意味 すべてソース トレード ミラー 2 倍 (実マネー 失う)。ノード 来 + 去 (スケーリング、クラッシュ、ローリング更新)、+ 我々 望まない 専用コーディネータサービス 実行 + 保持活躍。

決定​

各 CopyEngineSupervisor クレーム プロファイル 原子 DB リース CopyProfiles テーブル上:

  • クレーム — 原子 ExecuteUpdate (または FOR UPDATE SKIP LOCKED キャップ時 ノードあたり) テイク プロファイル 未割り当て または リース lapsed。原子性 意味 2 個レーシング スーパーバイザ 決してクレーム 同一行。
  • リニュー — ライブノード リフレッシュ リース 各サイクル、キープ そのクレーム。
  • リクレーム — クラッシュ ノード リース 有効期限切れ、+ サバイバー ピック プロファイル アップ その次 サイクル (自己回復)。優雅 シャットダウン ノード リリース リース 直ちに フェイルオーバー 速。
  • ウォッチドッグ — ホスト タスク 終了 中 プロファイル まだ 我々の リスタート。
  • 調整 ジッター 避ける thundering herd UPDATEs スケール。

結果​

  • スタンドアロン コーディネータ デプロイ不要 + 健康的保つ — Postgres シングルソース真実。
  • 二重コピー 防止 行レベル原子性 によって、アプリケーションレベル ロック ではなく。
  • フェイルオーバー 遅延 バウンド by リース TTL (マイナス 速 パス 優雅 リリース)。
  • これ マネー パス; ガード by 決定論的 ストレス スイート (DST) — 決してウィークン DST シナリオ パス作成; コード修正。