refactor: rename Batch to Partition in error handling and processing functions for consistency

This commit is contained in:
2026-04-11 00:30:54 -05:00
parent 9eb9821daf
commit 955bc65ce9
10 changed files with 151 additions and 151 deletions

View File

@@ -82,7 +82,7 @@ ORDER BY batch_id`,
return batches, nil
}
func batchGeneratorMssql(ctx context.Context, db *sql.DB, tableInfo config.SourceTableInfo, rowsPerBatch int64) ([]models.Partition, error) {
func partitionGeneratorMssql(ctx context.Context, db *sql.DB, tableInfo config.SourceTableInfo, rowsPerBatch int64) ([]models.Partition, error) {
rowsCount, err := estimateTotalRowsMssql(ctx, db, tableInfo)
if err != nil {
return nil, err

View File

@@ -44,20 +44,20 @@ func processMigrationJob(
jobCtx, cancel := context.WithCancel(ctx)
defer cancel()
batches, err := batchGeneratorMssql(jobCtx, sourceDb, job.SourceTable, job.RowsPerBatch)
partitions, err := partitionGeneratorMssql(jobCtx, sourceDb, job.SourceTable, job.RowsPerBatch)
if err != nil {
log.Error("Unexpected error calculating batch ranges: ", err)
}
chJobErrors := make(chan custom_errors.JobError, job.QueueSize)
chBatches := make(chan models.Partition, job.QueueSize)
chExtractorErrors := make(chan custom_errors.ExtractorError, job.QueueSize)
chChunksRaw := make(chan models.Batch, job.QueueSize)
chChunksTransformed := make(chan models.Batch, job.QueueSize)
chLoadersErrors := make(chan custom_errors.LoaderError, job.QueueSize)
chPartitions := make(chan models.Partition, job.QueueSize)
chBatchesRaw := make(chan models.Batch, job.QueueSize)
chBatchesTransformed := make(chan models.Batch, job.QueueSize)
var wgActivePartitions sync.WaitGroup
var wgActiveBatches sync.WaitGroup
var wgActiveChunks sync.WaitGroup
var wgExtractors sync.WaitGroup
var wgTransformers sync.WaitGroup
var wgLoaders sync.WaitGroup
@@ -69,10 +69,10 @@ func processMigrationJob(
}
}()
go custom_errors.ExtractorErrorHandler(jobCtx, job.Retry.Attempts, chExtractorErrors, chBatches, chJobErrors, &wgActiveBatches)
go custom_errors.LoaderErrorHandler(jobCtx, job.Retry.Attempts, chLoadersErrors, chChunksTransformed, chJobErrors, &wgActiveChunks)
go custom_errors.ExtractorErrorHandler(jobCtx, job.Retry.Attempts, chExtractorErrors, chPartitions, chJobErrors, &wgActivePartitions)
go custom_errors.LoaderErrorHandler(jobCtx, job.Retry.Attempts, chLoadersErrors, chBatchesTransformed, chJobErrors, &wgActiveBatches)
maxExtractors := min(job.MaxExtractors, len(batches))
maxExtractors := min(job.MaxExtractors, len(partitions))
log.Infof("Starting %d extractor(s)...", maxExtractors)
for range maxExtractors {
@@ -82,20 +82,20 @@ func processMigrationJob(
job.SourceTable,
sourceColTypes,
job.ChunkSize,
chBatches,
chChunksRaw,
chPartitions,
chBatchesRaw,
chExtractorErrors,
chJobErrors,
&wgActiveBatches,
&wgActivePartitions,
&rowsRead,
)
})
}
wgActiveBatches.Add(len(batches))
wgActivePartitions.Add(len(partitions))
go func() {
for _, batch := range batches {
chBatches <- batch
for _, batch := range partitions {
chPartitions <- batch
}
}()
@@ -106,10 +106,10 @@ func processMigrationJob(
transformer.Exec(
jobCtx,
sourceColTypes,
chChunksRaw,
chChunksTransformed,
chBatchesRaw,
chBatchesTransformed,
chJobErrors,
&wgActiveChunks,
&wgActiveBatches,
)
})
}
@@ -122,27 +122,27 @@ func processMigrationJob(
jobCtx,
job.TargetTable,
targetColTypes,
chChunksTransformed,
chBatchesTransformed,
chLoadersErrors,
chJobErrors,
&wgActiveChunks,
&wgActiveBatches,
&rowsLoaded,
)
})
}
go func() {
wgActiveBatches.Wait()
close(chBatches)
wgActivePartitions.Wait()
close(chPartitions)
close(chExtractorErrors)
wgExtractors.Wait()
close(chChunksRaw)
close(chBatchesRaw)
wgTransformers.Wait()
wgActiveChunks.Wait()
close(chChunksTransformed)
wgActiveBatches.Wait()
close(chBatchesTransformed)
close(chLoadersErrors)
wgLoaders.Wait()