① 共有ビルド機の衝突タイプ
失敗パターンに名前を付け、キュー・ロック・予約・プール分割を選び分けます。
- 可変WS競合:同一チェックアウトへの同時書き込み。ジョブ別ディレクトリとSSH/VNC・権限隔離FAQのパス分離。
- 排他資源:シミュレータ画面・署名・共有キャッシュ。flockドメインまたは直列レーン。
- 不可視キュー:待ちだけ増え位置が見えない→深度上限と待ち可視化。
- TZ座席衝突:対話と自動化の重複→予約ウィンドウとTTL、CIラベルで分離。
週次で同型が出るなら並列増より対話/CI分離・ノード追加を先に。
② 座席ロック/予約ウィンドウのパラメータ提案表
座席ロックはflockの人間向け版。権威ある状態をWiki等に置き、現地時刻で窓を公開します。
| パラメータ | 開始の目安 | メモ |
|---|---|---|
| 対話用デフォルト予約 | 60〜120分 | 更新式で幽霊占有を防ぐ。 |
| 陳腐化TTL(HBなし) | 15〜30分 | sweeper+監査ログ。 |
CI flock -w |
120〜300秒 | ジョブTOより短く。 |
| 待ち行列上限 | 〜20ジョブ | 超過は明示失敗。 |
| SLA:待ち中央値 | 業務時間 >15分 | 持続なら容量・レーン見直し。 |
| 人間/CI窓バッファ | 15分 | ドレイン用すきま。 |
公平性より見えるルールを優先し、引き継ぎで壊れないようにします。
③ Git同時フェッチとの調整
同一可変作業ツリーへの同時書き込みを禁止。読み取りは帯域・キャッシュでコンパイルと競合し得ます。
- ジョブ別クローン/worktreeで枝を分離。
- ホストあたり
git fetch並列は2〜4目安。 - 共有キャッシュへの書き込みはビルド方針と同じflockで直列化。
並列PR検証は隔離→オーケ並列の順。
④ ディスクと同時実行の上限閾値
閾値を数値化し、インシデントで感覚論を避けます。
- ヘビーは原則1。軽量はCPU持続75%未満かつ空きRAM8〜16GB以上で最大2。
- DerivedData等30〜80GB目安、80%で掃除。
- 空き15%または40GB割れでアラート。
プールFAQと同一文書にまとめ、閾値の二重管理を避けます。
⑤ 切断復旧と通知戦略FAQ
切断後も予約が残るため、TTL・通知・Runbookで手動リブートに頼らないようにします。
- 対話席はHB/更新でTTL延長。
- 強制解放はノードID・前オーナーをチャットへ。
- ブレークグラス:PID確認→ジョブ取消→確認後ロック削除。ホストよりワーカー再起動優先。
- SSH/VNCの再接続期待をキューSLA文書に併記。
通知を信頼できないとロック迂回に戻るため、設計の一部として扱います。