Browse Source

volume growth: remove main node filter with exists node

pull/279/head
tnextday 10 years ago
parent
commit
6a4aa3ec36
  1. 3
      go/topology/topology_replicate.go
  2. 12
      go/topology/volume_growth.go
  3. 2
      go/util/http_util.go
  4. 2
      go/weed/weed_server/master_server_handlers_admin.go

3
go/topology/topology_replicate.go

@ -142,7 +142,7 @@ func (topo *Topology) CheckReplicate() {
taskCount--
finishedTask.DstDN.UpAdjustPlannedVolumeCountDelta(-1)
}
glog.V(1).Infoln("finish replicate check.")
glog.V(0).Infoln("finish replicate check.")
}
func (topo *Topology) StartCheckReplicate() {
@ -150,5 +150,4 @@ func (topo *Topology) StartCheckReplicate() {
return
}
go topo.CheckReplicate()
}

12
go/topology/volume_growth.go

@ -185,15 +185,13 @@ func FindEmptySlotsForOneVolume(topo *Topology, option *VolumeGrowOption, exists
pickNodesFn := PickLowUsageNodeFn
rp := option.ReplicaPlacement
pickMainAndRestNodes := func(np NodePicker, totalNodeCount int, filterNodeFn FilterNodeFn, existsNodes []Node) (mainNode Node, restNodes []Node, e error) {
for _, n := range existsNodes {
if filterNodeFn(n) == nil {
mainNode = n
break
}
pickMainAndRestNodes := func(np NodePicker, totalNodeCount int, filterFirstNodeFn FilterNodeFn, existsNodes []Node) (mainNode Node, restNodes []Node, e error) {
if len(existsNodes) > 0 {
mainNode = existsNodes[0]
}
if mainNode == nil {
mainNodes, err := np.PickNodes(1, filterNodeFn, pickNodesFn)
mainNodes, err := np.PickNodes(1, filterFirstNodeFn, pickNodesFn)
if err != nil {
return nil, nil, err
}

2
go/util/http_util.go

@ -236,7 +236,7 @@ func DownloadToFile(fileUrl, savePath string) (e error) {
r = response.Body
}
var f *os.File
if f, e = os.OpenFile(savePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm); e != nil {
if f, e = os.OpenFile(savePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644); e != nil {
return
}
if size >= 0 {

2
go/weed/weed_server/master_server_handlers_admin.go

@ -86,7 +86,7 @@ func (ms *MasterServer) volumeVacuumHandler(w http.ResponseWriter, r *http.Reque
func (ms *MasterServer) volumeCheckReplicateHandler(w http.ResponseWriter, r *http.Request) {
ms.Topo.StartCheckReplicate()
ms.dirStatusHandler(w, r)
writeJsonQuiet(w, r, http.StatusOK, map[string]interface{}{"status": "running"})
}
func (ms *MasterServer) volumeGrowHandler(w http.ResponseWriter, r *http.Request) {

Loading…
Cancel
Save