Browse Source

Fix volume replica parallelization within `ec.encode`. (#6377)

See 826edd5d.
pull/6207/merge
Lisandro Pin 3 days ago
committed by GitHub
parent
commit
4d91ec359b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 8
      weed/shell/command_ec_encode.go

8
weed/shell/command_ec_encode.go

@ -119,7 +119,7 @@ func (c *commandEcEncode) Do(args []string, commandEnv *CommandEnv, writer io.Wr
// encode all requested volumes... // encode all requested volumes...
for _, vid := range volumeIds { for _, vid := range volumeIds {
if err = doEcEncode(commandEnv, *collection, vid, *parallelize); err != nil {
if err = doEcEncode(commandEnv, *collection, vid, *maxParallelization); err != nil {
return fmt.Errorf("ec encode for volume %d: %v", vid, err) return fmt.Errorf("ec encode for volume %d: %v", vid, err)
} }
} }
@ -131,7 +131,7 @@ func (c *commandEcEncode) Do(args []string, commandEnv *CommandEnv, writer io.Wr
return nil return nil
} }
func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId, parallelize bool) error {
func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId, maxParallelization int) error {
if !commandEnv.isLocked() { if !commandEnv.isLocked() {
return fmt.Errorf("lock is lost") return fmt.Errorf("lock is lost")
} }
@ -143,9 +143,7 @@ func doEcEncode(commandEnv *CommandEnv, collection string, vid needle.VolumeId,
} }
// mark the volume as readonly // mark the volume as readonly
ewg := ErrorWaitGroup{
parallelize: parallelize,
}
ewg := NewErrorWaitGroup(maxParallelization)
for _, location := range locations { for _, location := range locations {
ewg.Add(func() error { ewg.Add(func() error {
if err := markVolumeReplicaWritable(commandEnv.option.GrpcDialOption, vid, location, false, false); err != nil { if err := markVolumeReplicaWritable(commandEnv.option.GrpcDialOption, vid, location, false, false); err != nil {

Loading…
Cancel
Save