Cells: Iteration 2: Identify all cross-transactions between `users` and `namespaces`
Problem
As part of the Cells: Iteration 2: Make `users` to be `gitlab_... (#410370 - closed) and Cells: Iteration 2: Make `namespaces` to be `gi... (#390102 - closed) the users
and namespaces
become part of separate schemas.
Currently those schemas are allowed to cross-join with due db/gitlab_schemas/gitlab_main_cell.yaml
having allow_cross_joins: gitlab_main_clusterwide
allow.
Steps
We should identify all cross-joins by:
- From
db/gitlab_schemas/gitlab_main_cell.yaml
removingallow_cross_transactions: gitlab_main_clusterwide
. - Trying to get pipeline green, by:
- get pipeline green by using
allow_cross_database_modification_within_transaction
, and creating associated issue - use
cross_database_ignore_tables
from Cells: Iteration 2: Introduce `CrossDatabaseIgn... (#409836 - closed) - allowlisting temporary all failed specs in
spec/support/database/cross-database-modification-allowlist.yml
- get pipeline green by using
Remarks
- It is not allowed to cross-transactions across separate databases since it might result in database locking.
- It is temporarily acceptable to delay fixing this beyond
Iteration 2
since for the purpose of the demo the above performance implication does not affect ability to deliverIteration 2
- It is requirement to be fixed before going to production