diff options
| -rw-r--r-- | weed/storage/store.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/weed/storage/store.go b/weed/storage/store.go index 8dea7496d..aa5c1809f 100644 --- a/weed/storage/store.go +++ b/weed/storage/store.go @@ -5,6 +5,7 @@ import ( "io" "path/filepath" "strings" + "sync" "sync/atomic" "github.com/seaweedfs/seaweedfs/weed/pb" @@ -82,12 +83,21 @@ func NewStore(grpcDialOption grpc.DialOption, ip string, port int, grpcPort int, minFreeSpaces []util.MinFreeSpace, idxFolder string, needleMapKind NeedleMapKind, diskTypes []DiskType) (s *Store) { s = &Store{grpcDialOption: grpcDialOption, Port: port, Ip: ip, GrpcPort: grpcPort, PublicUrl: publicUrl, NeedleMapKind: needleMapKind} s.Locations = make([]*DiskLocation, 0) + + var wg sync.WaitGroup for i := 0; i < len(dirnames); i++ { location := NewDiskLocation(dirnames[i], int32(maxVolumeCounts[i]), minFreeSpaces[i], idxFolder, diskTypes[i]) - location.loadExistingVolumes(needleMapKind) s.Locations = append(s.Locations, location) stats.VolumeServerMaxVolumeCounter.Add(float64(maxVolumeCounts[i])) + + wg.Add(1) + go func() { + defer wg.Done() + location.loadExistingVolumes(needleMapKind) + }() } + wg.Wait() + s.NewVolumesChan = make(chan master_pb.VolumeShortInformationMessage, 3) s.DeletedVolumesChan = make(chan master_pb.VolumeShortInformationMessage, 3) |
