From e8e8d11bd3470e19aa20a965c23d74d2952deec9 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 19 May 2014 19:18:39 -0700 Subject: [PATCH] Refactor out weedfs vacuum. --- go/storage/store.go | 35 ------------------------------- go/storage/store_vacuum.go | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 35 deletions(-) create mode 100644 go/storage/store_vacuum.go diff --git a/go/storage/store.go b/go/storage/store.go index a9ad88661..a6a4f399e 100644 --- a/go/storage/store.go +++ b/go/storage/store.go @@ -164,41 +164,6 @@ func (s *Store) addVolume(vid VolumeId, collection string, replicaPlacement *Rep return fmt.Errorf("No more free space left") } -func (s *Store) CheckCompactVolume(volumeIdString string, garbageThresholdString string) (error, bool) { - vid, err := NewVolumeId(volumeIdString) - if err != nil { - return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString), false - } - garbageThreshold, e := strconv.ParseFloat(garbageThresholdString, 32) - if e != nil { - return fmt.Errorf("garbageThreshold %s is not a valid float number!", garbageThresholdString), false - } - if v := s.findVolume(vid); v != nil { - glog.V(3).Infoln(vid, "garbage level is", v.garbageLevel()) - return nil, garbageThreshold < v.garbageLevel() - } - return fmt.Errorf("volume id %d is not found during check compact!", vid), false -} -func (s *Store) CompactVolume(volumeIdString string) error { - vid, err := NewVolumeId(volumeIdString) - if err != nil { - return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString) - } - if v := s.findVolume(vid); v != nil { - return v.Compact() - } - return fmt.Errorf("volume id %d is not found during compact!", vid) -} -func (s *Store) CommitCompactVolume(volumeIdString string) error { - vid, err := NewVolumeId(volumeIdString) - if err != nil { - return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString) - } - if v := s.findVolume(vid); v != nil { - return v.commitCompact() - } - return fmt.Errorf("volume id %d is not found during commit compact!", vid) -} func (s *Store) FreezeVolume(volumeIdString string) error { vid, err := NewVolumeId(volumeIdString) if err != nil { diff --git a/go/storage/store_vacuum.go b/go/storage/store_vacuum.go new file mode 100644 index 000000000..5adaa7561 --- /dev/null +++ b/go/storage/store_vacuum.go @@ -0,0 +1,43 @@ +package storage + +import ( + "code.google.com/p/weed-fs/go/glog" + "fmt" + "strconv" +) + +func (s *Store) CheckCompactVolume(volumeIdString string, garbageThresholdString string) (error, bool) { + vid, err := NewVolumeId(volumeIdString) + if err != nil { + return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString), false + } + garbageThreshold, e := strconv.ParseFloat(garbageThresholdString, 32) + if e != nil { + return fmt.Errorf("garbageThreshold %s is not a valid float number!", garbageThresholdString), false + } + if v := s.findVolume(vid); v != nil { + glog.V(3).Infoln(vid, "garbage level is", v.garbageLevel()) + return nil, garbageThreshold < v.garbageLevel() + } + return fmt.Errorf("volume id %d is not found during check compact!", vid), false +} +func (s *Store) CompactVolume(volumeIdString string) error { + vid, err := NewVolumeId(volumeIdString) + if err != nil { + return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString) + } + if v := s.findVolume(vid); v != nil { + return v.Compact() + } + return fmt.Errorf("volume id %d is not found during compact!", vid) +} +func (s *Store) CommitCompactVolume(volumeIdString string) error { + vid, err := NewVolumeId(volumeIdString) + if err != nil { + return fmt.Errorf("Volume Id %s is not a valid unsigned integer!", volumeIdString) + } + if v := s.findVolume(vid); v != nil { + return v.commitCompact() + } + return fmt.Errorf("volume id %d is not found during commit compact!", vid) +}