Cells のデータベース設定
コンテキスト
個々の Cell が 3 つの論理データベースを持つべきか、単一データベースを持つべきかについて、この Issue で議論しました。
決定事項
レガシー Cell アーキテクチャとの整合性を保つため、Cell には3 つの論理データベース(main、ci、sec)を持つ単一 DB インスタンスを作成することを決定しました。
このアプローチは未知の要素を減らし、Cell からレガシー Cell へのより簡単な PostgreSQL ロールバックパスを提供します。
結果と影響
- 既存の
レガシークラスターと整合した均一な Cell クラスターアーキテクチャを維持します。 - 移行が
3→3になるため(3→1ではなく)、組織の PostgreSQL データ移行が簡素化され、ロールバックも同じパターンに従います。 - こちらのコメントで説明されているように、組織データの移行は分解されたデータベースを使用する Cell で機能します。
- こちらのコメントで説明されているように、ディザスタリカバリのための Geo は分解されたデータベースを使用する Cell で引き続き機能します。
代替案
Cell に単一の論理データベース(main)を使用する
以下の理由で却下:
gitlab_shared_orgスキーマを持つ既存データの移行の課題が生じる。- 一部の機能が分解されたデータベースアーキテクチャに依存している可能性があるため、未知の要素が増える。
- Cell からレガシー Cell へのロールバックが複雑になる(どのテーブルがどのデータベースに属するかを識別する
1→3データ変換が必要)。
