Geo: Extract wiki replication and verification data in its own table
Summary
In the current implementation, we have the following to track projects and wikis replication and verification:
- We have 1 row in the
project_repository_state
table in the main database to track project and wiki verification - We have 1 row in the
project_registry
table in the tracking database to handle project and wiki replication and synchronization.
As part of &4623 (closed), we need to separate projects and wikis in their tables.
Proposal
-
Extract wiki replication and verification data in its own table:
- Create the table
wiki_repository_state
to track the verification state for wiki repositories; - Make the legacy code responsible to verify wikis to maintain both wiki tables
project_repository_state
andwiki_repository_state
simultaneously until %16.0 behind a feature flaggeo_project_wikis_ssf_migration
; - Create the registry table
wiki_repository_registry
to track replication and verification state for wiki repositories; - Make the legacy code responsible for replicating/verifying wikis to maintain both wiki tables
project_registry
andwiki_repository_registry
simultaneously until %16.0 behind a feature flaggeo_project_wikis_ssf_migration
; - Change the metrics gathering implementation to support both tables behind a feature flag
geo_project_wikis_ssf_migration
; - Enable the
geo_project_wikis_ssf_migration
feature flag;
- Create the table
-
Migrate wikis replication/verification to use SSF
- Make the SSF code responsible to verify wikis to maintain both wiki tables
project_repository_state
andwiki_repository_state
simultaneously until %16.0 behind a feature flaggeo_project_wikis_ssf_migration
; - Make the SSF code responsible for replicating/verifying wikis to maintain both wiki tables
project_registry
andwiki_repository_registry
simultaneously until %16.0 behind a feature flaggeo_project_wikis_ssf_migration
;
- Make the SSF code responsible to verify wikis to maintain both wiki tables
-
Warning about updating to %16.0 if there is any remaining unmigrated data
- Create a rake task to check if there is any remaining unmigrated data;
- Create a rake task to migrate any remaining unmigrated data;
- Update the version-specific upgrade docs, to tell customers to check if there is any remaining unmigrated data or run the rake task to migrate the data, otherwise, unmigrated wikis will be resynced after upgrade to version %16.0;
-
Remove projects and wikis migration code in %16.1
- Remove the feature flag
geo_project_wikis_ssf_migration
; - Remove wiki columns in the
project_repository_state
table; - Remove wiki columns in the
project_registry
table; - Remove the legacy code responsible for replicating/verifying project and wiki repositories;
- Remove the feature flag
Edited by Douglas Barbosa Alexandre