Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Fargher <proglottis@gmail.com>2022-05-23 02:07:37 +0300
committerJames Fargher <proglottis@gmail.com>2022-05-23 02:07:37 +0300
commit2ea9ab62df044733714466e84140663fa883a9cb (patch)
tree311dd77a96b73c68ecd75901bf14cba33319081e
parentc5e7b40a0bb1cb248ebb73005fc715a8da484ed3 (diff)
parent7d616177e79cd6a08f9369969eee667450697e82 (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
-rw-r--r--internal/praefect/datastore/datastore.go18
-rw-r--r--internal/praefect/datastore/migrations/20220520083313_remove_maintenance_replication_events.go27
-rw-r--r--internal/praefect/reconciler/reconciler_test.go5
-rw-r--r--internal/praefect/replicator.go9
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)
}