add ZREPL_DESTROY_MAX_BATCH_SIZE env var to control max batch destroy size

fixes #508
closes https://github.com/zrepl/zrepl/pull/604
This commit is contained in:
3nprob
2022-05-19 20:32:37 +09:00
committed by Christian Schwarz
parent 53f9bd6d88
commit e4112d888c
2 changed files with 4 additions and 2 deletions
+2 -1
View File
@@ -115,9 +115,10 @@ func buildBatches(reqs []*DestroySnapOp) [][]*DestroySnapOp {
// group by fs
var perFS [][]*DestroySnapOp
consumed := 0
maxBatchSize := envconst.Int("ZREPL_DESTROY_MAX_BATCH_SIZE", 0)
for consumed < len(sorted) {
batchConsumedUntil := consumed
for ; batchConsumedUntil < len(sorted) && sorted[batchConsumedUntil].Filesystem == sorted[consumed].Filesystem; batchConsumedUntil++ {
for ; batchConsumedUntil < len(sorted) && (maxBatchSize < 1 || batchConsumedUntil-consumed < maxBatchSize) && sorted[batchConsumedUntil].Filesystem == sorted[consumed].Filesystem; batchConsumedUntil++ {
}
perFS = append(perFS, sorted[consumed:batchConsumedUntil])
consumed = batchConsumedUntil