From 98a97d610debc159c056c4be2d8bf6ee44119f01 Mon Sep 17 00:00:00 2001 From: tnextday Date: Thu, 10 Mar 2016 17:23:45 +0800 Subject: [PATCH] random pick node in growth volume return random host in redirect change verison to 0.73 beta --- go/topology/volume_growth.go | 2 +- go/util/constants.go | 2 +- go/weed/weed_server/volume_server_handlers_read.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/topology/volume_growth.go b/go/topology/volume_growth.go index f010894b9..00826faee 100644 --- a/go/topology/volume_growth.go +++ b/go/topology/volume_growth.go @@ -182,7 +182,7 @@ func makeExceptNodeFilter(nodes []Node) FilterNodeFn { // 2. find rest data nodes func FindEmptySlotsForOneVolume(topo *Topology, option *VolumeGrowOption, existsServers *VolumeLocationList) (additionServers []*DataNode, err error) { //find main datacenter and other data centers - pickNodesFn := PickLowUsageNodeFn + pickNodesFn := RandomlyPickNodeFn rp := option.ReplicaPlacement pickMainAndRestNodes := func(np NodePicker, totalNodeCount int, filterFirstNodeFn FilterNodeFn, existsNodes []Node) (mainNode Node, restNodes []Node, e error) { diff --git a/go/util/constants.go b/go/util/constants.go index 14b8d51f1..473218ea9 100644 --- a/go/util/constants.go +++ b/go/util/constants.go @@ -1,5 +1,5 @@ package util const ( - VERSION = "0.72 beta" + VERSION = "0.73 beta" ) diff --git a/go/weed/weed_server/volume_server_handlers_read.go b/go/weed/weed_server/volume_server_handlers_read.go index 9b757961f..ebe323d1c 100644 --- a/go/weed/weed_server/volume_server_handlers_read.go +++ b/go/weed/weed_server/volume_server_handlers_read.go @@ -48,7 +48,7 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) lookupResult, err := operation.Lookup(vs.GetMasterNode(), volumeId.String(), r.FormValue("collection")) glog.V(2).Infoln("volume", volumeId, "found on", lookupResult, "error", err) if err == nil && len(lookupResult.Locations) > 0 { - u, _ := url.Parse(util.NormalizeUrl(lookupResult.Locations.Head().PublicUrl)) + u, _ := url.Parse(util.NormalizeUrl(lookupResult.Locations.PickForRead().PublicUrl)) u.Path = r.URL.Path http.Redirect(w, r, u.String(), http.StatusMovedPermanently) } else {