diff options
author | James Fargher <proglottis@gmail.com> | 2022-05-23 02:07:37 +0300 |
---|---|---|
committer | James Fargher <proglottis@gmail.com> | 2022-05-23 02:07:37 +0300 |
commit | 2ea9ab62df044733714466e84140663fa883a9cb (patch) | |
tree | 311dd77a96b73c68ecd75901bf14cba33319081e | |
parent | c5e7b40a0bb1cb248ebb73005fc715a8da484ed3 (diff) | |
parent | 7d616177e79cd6a08f9369969eee667450697e82 (diff) |
Merge branch 'pks-praefect-remove-maintenance-replication-job-handling' into 'master'
praefect: Remove logic to handle maintenance-style replication events
Closes #4185
See merge request gitlab-org/gitaly!4575
4 files changed, 27 insertions, 32 deletions
diff --git a/internal/praefect/datastore/datastore.go b/internal/praefect/datastore/datastore.go index 2e7497e54..48e9df648 100644 --- a/internal/praefect/datastore/datastore.go +++ b/internal/praefect/datastore/datastore.go @@ -47,24 +47,6 @@ const ( DeleteReplica = ChangeType("delete_replica") // RenameRepo is when a replication renames repo RenameRepo = ChangeType("rename") - // GarbageCollect is when replication runs gc - GarbageCollect = ChangeType("gc") - // RepackFull is when replication runs a full repack - RepackFull = ChangeType("repack_full") - // RepackIncremental is when replication runs an incremental repack - RepackIncremental = ChangeType("repack_incremental") - // Cleanup is when replication runs a repo cleanup - Cleanup = ChangeType("cleanup") - // PackRefs is when replication optimizes references in a repo - PackRefs = ChangeType("pack_refs") - // WriteCommitGraph is when replication writes a commit graph - WriteCommitGraph = ChangeType("write_commit_graph") - // MidxRepack is when replication does a multi-pack-index repack - MidxRepack = ChangeType("midx_repack") - // OptimizeRepository is when replication optimizes a repository - OptimizeRepository = ChangeType("optimize_repository") - // PruneUnreachableObjects is when replication prunes unreachable objects in a repository - PruneUnreachableObjects = ChangeType("prune_unreachable_objects") ) func (ct ChangeType) String() string { diff --git a/internal/praefect/datastore/migrations/20220520083313_remove_maintenance_replication_events.go b/internal/praefect/datastore/migrations/20220520083313_remove_maintenance_replication_events.go new file mode 100644 index 000000000..09330c942 --- /dev/null +++ b/internal/praefect/datastore/migrations/20220520083313_remove_maintenance_replication_events.go @@ -0,0 +1,27 @@ +package migrations + +import migrate "github.com/rubenv/sql-migrate" + +func init() { + m := &migrate.Migration{ + Id: "20220520083313_remove_maintenance_replication_events", + Up: []string{ + `DELETE FROM replication_queue WHERE job->>'change' IN ( + 'gc', + 'repack_full', + 'repack_incremental', + 'cleanup', + 'pack_refs', + 'write_commit_graph', + 'midx_repack', + 'optimize_repository', + 'prune_unreachable_objects' + )`, + }, + Down: []string{ + // We cannot get this data back anymore. + }, + } + + allMigrations = append(allMigrations, m) +} diff --git a/internal/praefect/reconciler/reconciler_test.go b/internal/praefect/reconciler/reconciler_test.go index af3fd4d13..a9c8e196a 100644 --- a/internal/praefect/reconciler/reconciler_test.go +++ b/internal/praefect/reconciler/reconciler_test.go @@ -386,11 +386,6 @@ func TestReconciler(t *testing.T) { []datastore.ChangeType{ datastore.DeleteRepo, datastore.RenameRepo, - datastore.GarbageCollect, - datastore.RepackFull, - datastore.RepackIncremental, - datastore.Cleanup, - datastore.PackRefs, }, datastore.ReplicationJob{ VirtualStorage: "virtual-storage-1", diff --git a/internal/praefect/replicator.go b/internal/praefect/replicator.go index c88bd8fc2..54ed3ebda 100644 --- a/internal/praefect/replicator.go +++ b/internal/praefect/replicator.go @@ -639,15 +639,6 @@ func (r ReplMgr) processReplicationEvent(ctx context.Context, event datastore.Re err = r.replicator.Destroy(ctx, event, targetCC) case datastore.RenameRepo: err = r.replicator.Rename(ctx, event, targetCC) - case datastore.GarbageCollect, datastore.RepackFull, datastore.RepackIncremental, datastore.Cleanup, datastore.PackRefs, datastore.WriteCommitGraph, datastore.MidxRepack, datastore.OptimizeRepository, datastore.PruneUnreachableObjects: - // Even though we don't generate any replication events for maintenance-style RPCs - // anymore, we still need to handle them here in order to drain the queue. It's safe - // to just do nothing though: the new strategy is best-effort anyway and just - // ignores out-of-date nodes, so by ignoring the events here we roughly do the same. - // - // This fallback code can be removed with v15.1 along with an SQL migration which - // prunes any remaining maintenance-style replication jobs. - r.log.Infof("ignoring maintenance event of type %v", event.Job.Change) default: err = fmt.Errorf("unknown replication change type encountered: %q", event.Job.Change) } |