0006 — コピーホスティング 原子 DB リース コーディネート
コンテキスト
実行中 コピープロファイル ホスト 正確に 1 個 ノード — 2 個ホスト 同プロファイル 意味 すべてソース トレード ミラー 2 倍 (実マネー 失う)。ノード 来 + 去 (スケーリング、クラッシュ、ローリング更新)、+ 我々 望まない 専用コーディネータサービス 実行 + 保持活躍。
決定
各 CopyEngineSupervisor クレーム プロファイル 原子 DB リース CopyProfiles テーブル上:
- クレーム — 原子
ExecuteUpdate(またはFOR UPDATE SKIP LOCKEDキャップ時 ノードあたり) テイク プロファイル 未割り当て または リース lapsed。原子性 意味 2 個レーシング スーパーバイザ 決してクレーム 同一行。 - リニュー — ライブノード リフレッシュ リース 各サイクル、キープ そのクレーム。
- リクレーム — クラッシュ ノード リース 有効期限切れ、+ サバイバー ピック プロファイル アップ その次 サイクル (自己回復)。優雅 シャットダウン ノード リリース リース 直ちに フェイルオーバー 速。
- ウォッチドッグ — ホスト タスク 終了 中 プロファイル まだ 我々の リスタート。
- 調整 ジッター 避ける thundering herd
UPDATEs スケール。
結果
- スタンドアロン コーディネータ デプロイ不要 + 健康的保つ — Postgres シングルソース真実。
- 二重コピー 防止 行レベル原子性 によって、アプリケーションレベル ロック ではなく。
- フェイルオーバー 遅延 バウンド by リース TTL (マイナス 速 パス 優雅 リリース)。
- これ マネー パス; ガード by 決定論的 ストレス スイート (DST) — 決してウィークン DST シナリオ パス作成; コード修正。