Browse Source

add locking when adjusting topology

pull/2/head
Chris Lu 12 years ago
parent
commit
9782ace1bd
  1. 6
      weed-fs/src/pkg/replication/volume_growth.go

6
weed-fs/src/pkg/replication/volume_growth.go

@ -7,6 +7,7 @@ import (
"pkg/operation" "pkg/operation"
"pkg/storage" "pkg/storage"
"pkg/topology" "pkg/topology"
"sync"
) )
/* /*
@ -22,6 +23,8 @@ type VolumeGrowth struct {
copy2factor int copy2factor int
copy3factor int copy3factor int
copyAll int copyAll int
accessLock sync.Mutex
} }
func NewDefaultVolumeGrowth() *VolumeGrowth { func NewDefaultVolumeGrowth() *VolumeGrowth {
@ -46,6 +49,9 @@ func (vg *VolumeGrowth) GrowByType(repType storage.ReplicationType, topo *topolo
return 0, errors.New("Unknown Replication Type!") return 0, errors.New("Unknown Replication Type!")
} }
func (vg *VolumeGrowth) GrowByCountAndType(count int, repType storage.ReplicationType, topo *topology.Topology) (counter int, err error) { func (vg *VolumeGrowth) GrowByCountAndType(count int, repType storage.ReplicationType, topo *topology.Topology) (counter int, err error) {
vg.accessLock.Lock()
defer vg.accessLock.Unlock()
counter = 0 counter = 0
switch repType { switch repType {
case storage.Copy000: case storage.Copy000:

Loading…
Cancel
Save