[master] avoid timeout when assigning for main request with filter by DC or rack (#6291)
* avoid timeout when assigning for main request with filter by DC or rack https://github.com/seaweedfs/seaweedfs/issues/6290 * use constant NoWritableVolumes
This commit is contained in:
committed by
GitHub
parent
fec88e64eb
commit
e2e97db917
@@ -31,7 +31,7 @@ const (
|
||||
readOnlyState volumeState = "ReadOnly"
|
||||
oversizedState = "Oversized"
|
||||
crowdedState = "Crowded"
|
||||
noWritableVolumes = "No writable volumes"
|
||||
NoWritableVolumes = "No writable volumes"
|
||||
)
|
||||
|
||||
type stateIndicator func(copyState) bool
|
||||
@@ -302,7 +302,7 @@ func (vl *VolumeLayout) PickForWrite(count uint64, option *VolumeGrowOption) (vi
|
||||
|
||||
lenWriters := len(vl.writables)
|
||||
if lenWriters <= 0 {
|
||||
return 0, 0, nil, true, fmt.Errorf("%s", noWritableVolumes)
|
||||
return 0, 0, nil, true, fmt.Errorf("%s", NoWritableVolumes)
|
||||
}
|
||||
if option.DataCenter == "" && option.Rack == "" && option.DataNode == "" {
|
||||
vid := vl.writables[rand.IntN(lenWriters)]
|
||||
@@ -337,7 +337,7 @@ func (vl *VolumeLayout) PickForWrite(count uint64, option *VolumeGrowOption) (vi
|
||||
return
|
||||
}
|
||||
}
|
||||
return vid, count, locationList, true, fmt.Errorf("%s in DataCenter:%v Rack:%v DataNode:%v", noWritableVolumes, option.DataCenter, option.Rack, option.DataNode)
|
||||
return vid, count, locationList, true, fmt.Errorf("%s in DataCenter:%v Rack:%v DataNode:%v", NoWritableVolumes, option.DataCenter, option.Rack, option.DataNode)
|
||||
}
|
||||
|
||||
func (vl *VolumeLayout) HasGrowRequest() bool {
|
||||
|
||||
Reference in New Issue
Block a user