aboutsummaryrefslogtreecommitdiff
path: root/weed/topology/topology_vacuum.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/topology/topology_vacuum.go')
-rw-r--r--weed/topology/topology_vacuum.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/weed/topology/topology_vacuum.go b/weed/topology/topology_vacuum.go
index a7ef52336..c030cb558 100644
--- a/weed/topology/topology_vacuum.go
+++ b/weed/topology/topology_vacuum.go
@@ -86,14 +86,16 @@ func (t *Topology) Vacuum(garbageThreshold string) int {
for _, vl := range c.storageType2VolumeLayout.Items() {
if vl != nil {
volumeLayout := vl.(*VolumeLayout)
- writableSet := make(map[storage.VolumeId]bool)
- for _, id := range volumeLayout.writables {
- writableSet[id] = true
- }
for vid, locationlist := range volumeLayout.vid2location {
- if _, isWritable := writableSet[vid]; !isWritable {
+
+ vl.accessLock.RLock()
+ isReadOnly, hasValue := volumeLayout.readonlyVolumes[vid]
+ vl.accessLock.RUnlock()
+
+ if hasValue && isReadOnly {
continue
}
+
glog.V(0).Infof("check vacuum on collection:%s volume:%d", c.Name, vid)
if batchVacuumVolumeCheck(volumeLayout, vid, locationlist, garbageThreshold) {
if batchVacuumVolumeCompact(volumeLayout, vid, locationlist) {