Skip to content

Commit 9af42e1

Browse files
committed
refactor(storage): fold ChangeStore into storage, drop dead store
## Summary ### Why? Two "change"-related stores were in the wrong shape. `ChangeStore` — the real, used store that records per-URI claims for in-flight requests and backs `start`'s URI claiming and `validate`'s overlap detection — lived as its own top-level extension and was injected into controllers as a separate dependency, bypassing the `storage.Storage` aggregator that owns every other entity store. Meanwhile `ChangeProviderStore` (exposed via `Storage.GetChangeProviderStore()`, with a mysql impl, mock, and schema) was dead code: no controller ever called it, and its `entity.ChangeProvider` was orphaned alongside it. ### What? - Move `ChangeStore` into `package storage`: the interface, mysql impl, and `change.sql` schema now live under `extension/storage[/mysql]`, and `ChangeStore` is a first-class member of the `Storage` aggregator via `GetChangeStore()` — matching every other store. - `start` and `validate` controllers drop their separate `changeStore` constructor param and read `store.GetChangeStore()`; the example orchestrator no longer constructs/injects it separately. - Delete the dead `ChangeProviderStore` (interface, mysql, mock, schema), `GetChangeProviderStore()`, and the orphaned `entity/change_provider.go`. - Fold the standalone changestore integration suite into the shared `StorageContractSuite` (driven through `GetChangeStore()`); e2e drops the now-redundant changestore schema apply. ## Test Plan - ✅ `make build`, `make test` (start/validate controllers pass against the storage-package mock) - ✅ `make lint`, `make check-gazelle`, `make check-mocks`, `make check-tidy` (no drift; `go.mod` / `MODULE.bazel` unchanged) - ✅ `make integration-test` (storage mysql suite now exercises the change store via `GetChangeStore()`) - ✅ `make e2e-test` (full land→validate flow: URI claim + overlap detection, `change` table applied from the storage schema dir)
1 parent f17c76f commit 9af42e1

37 files changed

Lines changed: 191 additions & 633 deletions

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ local-stovepipe-gateway-start: build-stovepipe-gateway-linux ## Start Stovepipe
334334

335335
mocks: ## Generate mock files using mockgen
336336
@echo "Generating mocks..."
337-
@$(BAZEL) run @rules_go//go -- generate ./submitqueue/extension/storage/... ./submitqueue/extension/buildrunner/... ./submitqueue/extension/changeprovider/... ./submitqueue/extension/changestore/... ./extension/counter/... ./extension/messagequeue/... ./submitqueue/extension/queueconfig/... ./submitqueue/extension/mergechecker/... ./submitqueue/extension/pusher/... ./submitqueue/extension/scorer/... ./submitqueue/extension/conflict/... ./submitqueue/core/consumer/...
337+
@$(BAZEL) run @rules_go//go -- generate ./submitqueue/extension/storage/... ./submitqueue/extension/buildrunner/... ./submitqueue/extension/changeprovider/... ./extension/counter/... ./extension/messagequeue/... ./submitqueue/extension/queueconfig/... ./submitqueue/extension/mergechecker/... ./submitqueue/extension/pusher/... ./submitqueue/extension/scorer/... ./submitqueue/extension/conflict/... ./submitqueue/core/consumer/...
338338
@echo "Mocks generated successfully!"
339339

340340
proto: ## Generate protobuf files from .proto definitions

example/submitqueue/orchestrator/server/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ go_library(
2424
"//submitqueue/extension/buildrunner/noop",
2525
"//submitqueue/extension/changeprovider",
2626
"//submitqueue/extension/changeprovider/github",
27-
"//submitqueue/extension/changestore",
28-
"//submitqueue/extension/changestore/mysql",
2927
"//submitqueue/extension/conflict",
3028
"//submitqueue/extension/conflict/all",
3129
"//submitqueue/extension/mergechecker",

example/submitqueue/orchestrator/server/main.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ import (
4343
buildnoop "github.com/uber/submitqueue/submitqueue/extension/buildrunner/noop"
4444
"github.com/uber/submitqueue/submitqueue/extension/changeprovider"
4545
githubprovider "github.com/uber/submitqueue/submitqueue/extension/changeprovider/github"
46-
"github.com/uber/submitqueue/submitqueue/extension/changestore"
47-
mysqlchangestore "github.com/uber/submitqueue/submitqueue/extension/changestore/mysql"
4846
"github.com/uber/submitqueue/submitqueue/extension/conflict"
4947
"github.com/uber/submitqueue/submitqueue/extension/conflict/all"
5048
"github.com/uber/submitqueue/submitqueue/extension/mergechecker"
@@ -164,8 +162,6 @@ func run() error {
164162
return fmt.Errorf("failed to create storage: %w", err)
165163
}
166164

167-
changeStore := mysqlchangestore.NewChangeStore(appDB, scope.SubScope("changestore"))
168-
169165
// Open queue database connection
170166
// Docker Compose healthchecks ensure MySQL is ready before service starts
171167
queueDSN := os.Getenv("QUEUE_MYSQL_DSN")
@@ -234,7 +230,7 @@ func run() error {
234230
br := buildnoop.New()
235231

236232
// Register controllers
237-
if err := registerControllers(c, logger.Sugar(), scope, registry, mc, cp, psh, br, cnt, store, changeStore); err != nil {
233+
if err := registerControllers(c, logger.Sugar(), scope, registry, mc, cp, psh, br, cnt, store); err != nil {
238234
return err
239235
}
240236

@@ -460,12 +456,11 @@ type conflictFactory struct{ impl conflict.Analyzer }
460456

461457
func (f conflictFactory) For(conflict.Config) (conflict.Analyzer, error) { return f.impl, nil }
462458

463-
func registerControllers(c consumer.Consumer, logger *zap.SugaredLogger, scope tally.Scope, registry consumer.TopicRegistry, mc mergechecker.MergeChecker, cp changeprovider.ChangeProvider, psh pusher.Pusher, br buildrunner.BuildRunner, cnt counter.Counter, store storage.Storage, changeStore changestore.ChangeStore) error {
459+
func registerControllers(c consumer.Consumer, logger *zap.SugaredLogger, scope tally.Scope, registry consumer.TopicRegistry, mc mergechecker.MergeChecker, cp changeprovider.ChangeProvider, psh pusher.Pusher, br buildrunner.BuildRunner, cnt counter.Counter, store storage.Storage) error {
464460
requestController := start.NewController(
465461
logger,
466462
scope,
467463
store,
468-
changeStore,
469464
registry,
470465
consumer.TopicKeyStart,
471466
"orchestrator-start",
@@ -490,7 +485,6 @@ func registerControllers(c consumer.Consumer, logger *zap.SugaredLogger, scope t
490485
logger,
491486
scope,
492487
store,
493-
changeStore,
494488
registry,
495489
mergeCheckerFactory{impl: mc},
496490
changeProviderFactory{impl: cp},

submitqueue/entity/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ go_library(
77
"batch_dependent.go",
88
"build.go",
99
"cancel_request.go",
10-
"change_provider.go",
1110
"change_record.go",
1211
"land_request.go",
1312
"queue_config.go",

submitqueue/entity/change_provider.go

Lines changed: 0 additions & 29 deletions
This file was deleted.

submitqueue/extension/changestore/BUILD.bazel

Lines changed: 0 additions & 9 deletions
This file was deleted.

submitqueue/extension/changestore/README.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

submitqueue/extension/changestore/mock/BUILD.bazel

Lines changed: 0 additions & 12 deletions
This file was deleted.

submitqueue/extension/changestore/mysql/BUILD.bazel

Lines changed: 0 additions & 14 deletions
This file was deleted.

submitqueue/extension/changestore/mysql/schema/BUILD.bazel

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)