mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-11-24 08:46:54 +08:00
Merge branch 'master' of https://github.com/seaweedfs/seaweedfs
This commit is contained in:
@@ -153,7 +153,7 @@ func allocate(hMapFile windows.Handle, offset uint64, length uint64, write bool)
|
||||
|
||||
mBuffer := MemoryBuffer{}
|
||||
|
||||
//align memory allocations to the minium virtal memory allocation size
|
||||
//align memory allocations to the minium virtual memory allocation size
|
||||
dwSysGran := systemInfo.dwAllocationGranularity
|
||||
|
||||
start := (offset / uint64(dwSysGran)) * uint64(dwSysGran)
|
||||
|
||||
@@ -15,7 +15,7 @@ func TestParseFileIdFromString(t *testing.T) {
|
||||
fidStr1 = "100, 12345678"
|
||||
_, err = ParseFileIdFromString(fidStr1)
|
||||
if err == nil {
|
||||
t.Errorf("%s : needlId invalid syntax", fidStr1)
|
||||
t.Errorf("%s : needleId invalid syntax", fidStr1)
|
||||
}
|
||||
|
||||
fidStr1 = "100,123456789"
|
||||
|
||||
@@ -195,7 +195,7 @@ func parseMultipart(r *http.Request, sizeLimit int64, pu *ParsedUpload) (e error
|
||||
}
|
||||
contentType := part.Header.Get("Content-Type")
|
||||
if contentType != "" && contentType != "application/octet-stream" && mtype != contentType {
|
||||
pu.MimeType = contentType // only return mime type if not deductable
|
||||
pu.MimeType = contentType // only return mime type if not deducible
|
||||
mtype = contentType
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ func (n *Needle) Append(w backend.BackendStorageFile, version Version) (offset u
|
||||
return
|
||||
}
|
||||
if offset >= MaxPossibleVolumeSize && n.Size.IsValid() {
|
||||
err = fmt.Errorf("Volume Size %d Exeededs %d", offset, MaxPossibleVolumeSize)
|
||||
err = fmt.Errorf("Volume Size %d Exceeded %d", offset, MaxPossibleVolumeSize)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,10 @@ type ReadOption struct {
|
||||
// * read requests should complete asap, not blocking other requests.
|
||||
// * write requests may see high latency when downloading large files.
|
||||
HasSlowRead bool
|
||||
|
||||
// increasing ReadBufferSize can reduce the number of get locks times and shorten read P99 latency.
|
||||
// but will increase memory usage a bit. Use with hasSlowRead normally.
|
||||
ReadBufferSize int
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -58,7 +62,7 @@ type Store struct {
|
||||
GrpcPort int
|
||||
PublicUrl string
|
||||
Locations []*DiskLocation
|
||||
dataCenter string // optional informaton, overwriting master setting if exists
|
||||
dataCenter string // optional information, overwriting master setting if exists
|
||||
rack string // optional information, overwriting master setting if exists
|
||||
connected bool
|
||||
NeedleMapKind NeedleMapKind
|
||||
|
||||
@@ -339,7 +339,7 @@ func (s *Store) recoverOneRemoteEcShardInterval(needleId types.NeedleId, ecVolum
|
||||
ecVolume.ShardLocationsLock.RLock()
|
||||
for shardId, locations := range ecVolume.ShardLocations {
|
||||
|
||||
// skip currnent shard or empty shard
|
||||
// skip current shard or empty shard
|
||||
if shardId == shardIdToRecover {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
|
||||
func (s *Store) CheckCompactVolume(volumeId needle.VolumeId) (float64, error) {
|
||||
if v := s.findVolume(volumeId); v != nil {
|
||||
glog.V(3).Infof("volumd %d garbage level: %f", volumeId, v.garbageLevel())
|
||||
glog.V(3).Infof("volume %d garbage level: %f", volumeId, v.garbageLevel())
|
||||
return v.garbageLevel(), nil
|
||||
}
|
||||
return 0, fmt.Errorf("volume id %d is not found during check compact", volumeId)
|
||||
|
||||
@@ -135,7 +135,7 @@ func (v *Volume) readNeedleDataInto(n *needle.Needle, readOption *ReadOption, wr
|
||||
actualOffset += int64(MaxPossibleVolumeSize)
|
||||
}
|
||||
|
||||
buf := mem.Allocate(min(1024*1024, int(size)))
|
||||
buf := mem.Allocate(min(readOption.ReadBufferSize, int(size)))
|
||||
defer mem.Free(buf)
|
||||
|
||||
// read needle data
|
||||
|
||||
@@ -167,7 +167,7 @@ func (v *Volume) CommitCompact() error {
|
||||
if e = v.load(true, false, v.needleMapKind, 0); e != nil {
|
||||
return e
|
||||
}
|
||||
glog.V(3).Infof("Finish commiting volume %d", v.Id)
|
||||
glog.V(3).Infof("Finish committing volume %d", v.Id)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ func removeVolumeFiles(filename string) {
|
||||
// compaction
|
||||
os.Remove(filename + ".cpd")
|
||||
os.Remove(filename + ".cpx")
|
||||
// level db indx file
|
||||
// level db index file
|
||||
os.RemoveAll(filename + ".ldb")
|
||||
// marker for damaged or incomplete volume
|
||||
os.Remove(filename + ".note")
|
||||
|
||||
Reference in New Issue
Block a user