CI データパーティショニング - 週次プロジェクト計画

CI データパーティショニング週次プロジェクト計画 - Pipeline Execution グループ。

CI データパーティショニング - 週次プロジェクト計画

マイルストーン目標

  • 16.6: ci_builds および ci_builds_metadata テーブルのパーティション化完了
  • 16.7: ci_builds および ci_builds_metadata の 2 つ目のパーティションが使用中
  • 16.9: ci_pipeline_variables テーブルのパーティション化完了
  • 17.0: ci_job_artifacts、ci_stages テーブルのパーティション化完了
  • 17.2: ci_pipelines テーブルのパーティション化完了
  • 17.3: ci_pipelines、ci_job_artifacts、ci_stages、ci_pipeline_variables の 2 つ目のパーティションが使用中
  • 17.6:(大まかな見積もり)パーティション化されたテーブルのリバランシング開始
  • 17.9:(大まかな見積もり)パーティション化されたテーブルのリバランシング完了

関連 Epic

アーカイブ

2023年8月14日の週

チーム容量

  • BE 1名

目標

ci_builds
  • ルーティングテーブルを使用する MR をマージ
  • パーティション間で ID の一意性を確保する MR をマージ
  • .com での MR の実行を確認、または失敗の場合は再試行(自動バキュームの競合はまだオプション)

2023年8月21日の週

チーム容量

  • BE 1名

目標

ci_builds
  • [~] ルーティングテーブルの使用有効化をブロックしているキャッシュの Issue を修正
  • [~] パーティション間での ID の一意性を確保するためのセルフマネージド向けマイグレーションを再導入

2023年8月28日の週

チーム容量

  • BE 0名(注:Marius は顧客エスカレーションに専念)

目標

2023年9月4日の週

チーム容量

  • BE 0名(注:Marius は顧客エスカレーションに専念)

目標

ci_builds

2023年9月11日の週

チーム容量

  • BE 1名

目標

ci_builds
  • [~] ルーティングテーブルの使用有効化をブロックしているキャッシュの Issue を修正
  • [~] クエリアナライザーを有効化:Issue

マイルストーン 16.5(2023年9月18日 - 2023年10月16日)

2023年9月18日の週

チーム容量

  • BE 1名

目標

ci_builds

2023年9月25日の週

チーム容量

  • BE 1名

目標

ci_builds

2023年10月2日の週

チーム容量

  • BE 1名

目標

今週は、クエリアナライザーをスケジュールでパーティション化された親テーブルに対して実行できるようにするためのツール適応を完了することを目指します。これにより、パーティション化されたテーブルで自動バキュームプロセスが実行されることを確保できます。

ci_builds

2023年10月9日の週

チーム容量

  • BE 1名

目標

今週は、ci_builds をパーティションを直接使用するのではなくルーティングテーブルを使用するように切り替えることを目指します。また、ci_builds と ci_builds_metadata テーブルのクエリアナライザーを有効にして、パフォーマンスが大幅に悪化していないことを確認します。クエリ内のフィルターを partition_id を使用するように更新する MR の作業を続けます。

ステータスアップデート

インフラとのテーブル名の切り替えの調整がまだ続いています。来週には完了できることを望んでいます。

タスクリスト

ci_builds
  • [~] フリート全体でテーブル名を切り替える
  • [~] ci_builds のクエリアナライザーを有効化:Issue(テーブル名の変更によりブロック)
  • ci_builds_metadata のクエリアナライザーを有効化
  • 必要な関連クエリへの partition_id フィルターの追加を開始

2023年10月16日の週

チーム容量

  • BE 1名

目標

今週は先週から引き継がれたアイテムに取り組みます。ci_builds をパーティションを直接使用するのではなくルーティングテーブルを使用するように切り替えることを目指します。また、ci_builds と ci_builds_metadata テーブルのクエリアナライザーを有効にして、パフォーマンスが大幅に悪化していないことを確認します。クエリ内のフィルターを partition_id を使用するように更新する MR の作業を続けます。

タスクリスト

ci_builds

ステータスアップデート

本番環境でテーブル名が切り替わったため、ci_builds の残りのパーティション化タスクを進めることができます。

マイルストーン 16.6(2023年10月17日 - 2023年11月10日)

チーム容量

  • BE 1名

マイルストーン目標

このマイルストーンでは、ci_builds と ci_builds_metadata に partition_id フィルターを追加するクエリの更新を完了する予定です。パーティション間での ID の一意性を確保するためのセルフマネージド向けマイグレーションを追加します。その後、ci_builds と ci_builds_metadata の 2 番目のパーティションへの書き込みを開始する予定です。また、既存の元のパーティションをより小さな複数のパーティションに分割します。これにより、パフォーマンスの改善が見え始める状態になります。全パーティションからの読み取りを続けるにつれ、パフォーマンスの低下が見られる場合があります。ci_builds のパーティション使用をセルフマネージドで有効にします。

2023年10月23日の週

チーム容量

  • BE 1名

目標

本番環境でテーブル名が切り替わったため、クエリアナライザーの有効化を進めています。クエリの更新作業を続けます。

タスクリスト

ci_builds
  • ci_builds のクエリアナライザーを有効化:Issue

2023年10月30日の週

チーム容量

  • BE 1名

目標

ci_builds と ci_builds_metadata のクエリに partition_id フィルタリングを含める更新を開始する予定です。

タスクリスト

ci_builds
  • 関連クエリへの partition_id フィルターの追加を開始 Issue
  • [~] 2 番目のパーティションへの書き込みを切り替え:Issue
  • [~] パーティション間での ID の一意性を確保するためのセルフマネージド向けマイグレーションを再導入
ci_builds_metadata
  • [~] 2 番目のパーティションへの書き込みを切り替え:Issue

2023年11月6日の週

チーム容量

  • BE 1名

目標

今週はセルフマネージドでパーティショニングが有効化されることを目指します。また、ci_builds と ci_builds_metadata のパーティショニングを完全に活用できるように必要なクエリを更新する予定です。

タスクリスト

ci_builds
  • 関連クエリへの partition_id フィルターの追加を完了
  • セルフマネージドで有効化
ci_builds_metadata
  • 関連クエリへの partition_id フィルターの追加を完了

マイルストーン 16.7(2023年11月13日 - 2023年12月15日)

チーム容量

  • BE 4名

目標

このマイルストーンでは、クエリの更新を完了し、ci_builds と ci_builds_metadata の 2 番目のパーティションへの書き込みを開始します。チームが拡大したため、ci_job_artifacts、ci_stages、ci_pipeline_variables のパーティション化作業も開始します。ci_builds と ci_builds_metadata の 2 番目のパーティションへの書き込みを開始します。セルフマネージド向けに ci_builds と ci_builds_metadata のパーティション間での ID の一意性を確保するためのマイグレーションを再導入します。

アップデート

ci_builds と ci_builds_metadata の 2 番目のパーティションへの書き込みを開始するために必要な重要なクエリ更新を完了しました。実際に ci_builds と ci_builds_metadata の 2 番目のパーティションへの書き込みを開始しました!ci_pipeline_variables のパーティション化でも大きな進捗がありました。ci_job_artifacts と ci_stages の作業も開始しました。

マイルストーン 16.8(2023年12月18日 - 2024年1月12日)

チーム容量

  • BE 4.5名

目標

ci_pipeline_variables、ci_job_artifacts、ci_stages の 3 テーブルすべてのパーティション化に向けて段階的な進捗を続ける予定です。年末の PTO のため、このマイルストーンは軽めです。

2023年12月18日の週

チーム容量

  • BE 4名

アップデート

このマイルストーン中に ci_pipelines の作業を開始できるかもしれません。パーティション化の取り組みを開始する前に、テーブルの主キーを交換する必要があります。元々は ci_builds の外部キーのバックフィルが完了するまで PK の交換を待つ予定でした。データベースチームに相談した後、完了前に交換を進める計画です。

2023年12月25日の週

チーム容量

  • BE 0名

目標

休暇 - チームメンバーは十分に休んでください。

2024年1月1日の週

チーム容量

  • BE 0名

目標

休暇 - チームメンバーは十分に休んでください。

2024年1月8日の週

チーム容量

  • BE 4名

アップデート

バックフィルが完了に近かったため、完了を待ってから先に進むことにしました。

マイルストーン 16.9(2024年1月15日 - 2024年2月9日)

チーム容量

  • BE 5名

目標

このマイルストーンでは ci_pipeline_variables のパーティション化を完了します。ci_pipelines のパーティション化を開始します。ci_job_artifacts と ci_stages テーブルのパーティション化の段階的な作業を続けます。partition_id を含める必要がある SQL クエリの特定と更新を続けます。タイムデケイメカニズムとパーティションマネージャーがパーティションを動的に作成するために必要な作業を明確にします。

2024年1月15日の週

チーム容量

  • BE 4名

アップデート

ci_pipelines の主キーを交換する前に再構築が必要なインデックスがさらにあることがわかりました。その結果、現在計画されている以上に ci_pipelines パーティション化のタイムラインを前倒しできないと考えています。また、既存の大きなパーティションをより小さなものに再分配するための潜在的な障害も見つかりました。PG15 アップグレードが完了するまで待つ必要があるかもしれません。その他の計画された作業は継続中です。一部のチーム容量はこのマイルストーンで通常の Pipeline Execution タスクを手伝っています。

2024年1月22日の週

チーム容量

  • BE 4名

アップデート

2024年1月29日の週

チーム容量

  • BE 5名

アップデート

タスクリスト

2024年2月5日の週

チーム容量

  • BE 5名

アップデート

マイルストーン 16.10(2024年2月12日 - 2024年3月8日)

チーム容量

  • BE 6名

目標

このマイルストーンでは、タイムデケイメカニズムとパーティションマネージャーの作業を開始します。ci_job_artifacts、ci_stages、ci_pipelines のパーティション化に向けた段階的な作業を続けます。partition_id を含める必要がある SQL クエリの特定と更新を続けます。

マイルストーン 16.11(2024年3月11日 - 2024年4月12日)

チーム容量

  • BE 6名

目標

ci_job_artifacts、ci_stages、ci_pipelines のパーティション化に向けた段階的な作業を続けます。タイムデケイメカニズムとパーティションマネージャーの作業を続けます。partition_id を含める必要がある SQL クエリの特定と更新を続けます。

マイルストーン 17.0(2024年4月15日 - 2024年5月10日)

チーム容量

  • BE 6名

目標

このマイルストーンでは、ci_job_artifacts と ci_stages のパーティション化を完了します。partition_id を含める必要がある SQL クエリの特定と更新を続けます。

マイルストーン 17.1(2024年5月13日 - 2024年6月14日)

チーム容量

  • BE 6名

目標

ci_pipelines のパーティション化に向けた段階的な作業を続けます。作成してきた残りの技術的負債のクリーンアップに取り組みます(進捗を追跡しています)。

マイルストーン 17.2(2024年6月17日 - 2024年7月12日)

チーム容量

  • BE 3名

目標

このマイルストーンでは、ci_pipelines のパーティション化を完了します。partition_id を含める必要がある SQL クエリの特定と更新を続けます。作成してきた残りの技術的負債のクリーンアップに取り組みます(進捗を追跡しています)。

マイルストーン 17.3(2024年7月15日 - 2024年8月9日)

チーム容量

  • BE 3名

目標

ci_pipelines、ci_pipeline_variables、ci_job_artifacts、ci_stages の 2 番目のパーティションを使用開始します。6 つのターゲットテーブルがパーティション化されたため、既存のパーティションのリバランシングを開始します。リバランシングにどれくらいかかるかはまだ不明ですが、近づくにつれて計画を詳細な情報で更新します。作成してきた残りの技術的負債のクリーンアップに取り組みます(進捗を追跡しています)。

マイルストーン 17.4(2024年8月12日 - 2024年9月13日)

チーム容量

  • BE 1名

目標

マイルストーン 17.5(2024年9月16日 - 2024年10月11日)

チーム容量

  • BE 1名

目標

マイルストーン 17.6(2024年10月14日 - 2024年11月15日)

チーム容量

  • BE 1名

目標

マイルストーン 17.6(2024年11月18日 - 2024年12月13日)

チーム容量

  • BE 1名

目標

PG15 の機能を使用して古いパーティションのリバランシングを開始できます - IssueGitLab Postgres アップグレードケイデンス