-
Notifications
You must be signed in to change notification settings - Fork 30
Checksum N:M support #680
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checksum N:M support #680
Changes from all commits
5378b68
6c5b82c
9002d1c
7622146
6f95386
3153d5f
1e13603
8a0b716
dd2a78f
b4f02f1
1ce9afc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -49,9 +49,15 @@ func NewCheckerDefaultConfig() *CheckerConfig { | |
| } | ||
|
|
||
| // NewChecker creates a new checksum object. | ||
| func NewChecker(db *sql.DB, chunker table.Chunker, feed *repl.Client, config *CheckerConfig) (Checker, error) { | ||
| if feed == nil { | ||
| return nil, errors.New("feed must be non-nil") | ||
| // sourceDBs contains the source database connections (one for single-source migrations, | ||
| // multiple for N:M moves). The distributed checker aggregates checksums across all sources. | ||
| // The single checker uses sourceDBs[0]. | ||
| func NewChecker(sourceDBs []*sql.DB, chunker table.Chunker, feeds []*repl.Client, config *CheckerConfig) (Checker, error) { | ||
| if len(sourceDBs) == 0 { | ||
| return nil, errors.New("at least one source database must be provided") | ||
| } | ||
| if len(feeds) == 0 { | ||
| return nil, errors.New("at least one feed must be provided") | ||
| } | ||
|
Comment on lines
+55
to
61
|
||
| if chunker == nil { | ||
| return nil, errors.New("chunker must be non-nil") | ||
|
|
@@ -65,8 +71,8 @@ func NewChecker(db *sql.DB, chunker table.Chunker, feed *repl.Client, config *Ch | |
| if config.Applier != nil { | ||
| return &DistributedChecker{ | ||
| concurrency: config.Concurrency, | ||
| db: db, | ||
| feed: feed, | ||
| sourceDBs: sourceDBs, | ||
| feeds: feeds, | ||
| chunker: chunker, | ||
| dbConfig: config.DBConfig, | ||
| logger: config.Logger, | ||
|
|
@@ -77,8 +83,8 @@ func NewChecker(db *sql.DB, chunker table.Chunker, feed *repl.Client, config *Ch | |
| } | ||
| return &SingleChecker{ | ||
| concurrency: config.Concurrency, | ||
| db: db, | ||
| feed: feed, | ||
| db: sourceDBs[0], | ||
| feed: feeds[0], | ||
| chunker: chunker, | ||
| dbConfig: config.DBConfig, | ||
| logger: config.Logger, | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.