Merge pull request #127 from yanyiwu/master

BUG FIXED and IMPROVEMENT
This commit is contained in:
chrislusf 2015-04-20 07:42:21 -07:00
commit c42d33e800
4 changed files with 25 additions and 9 deletions

View file

@ -23,14 +23,11 @@ func NewRoundRobinCounter(slots int) *RoundRobinCounter {
return &RoundRobinCounter{LastIndex: -1, Values: make([]int64, slots), Counts: make([]int64, slots)} return &RoundRobinCounter{LastIndex: -1, Values: make([]int64, slots), Counts: make([]int64, slots)}
} }
func (rrc *RoundRobinCounter) Add(index int, val int64) { func (rrc *RoundRobinCounter) Add(index int, val int64) {
for rrc.LastIndex != index {
rrc.LastIndex++
if rrc.LastIndex >= len(rrc.Values) {
if index >= len(rrc.Values) { if index >= len(rrc.Values) {
break //just avoid endless loop return
}
rrc.LastIndex = 0
} }
for rrc.LastIndex != index {
rrc.LastIndex = (rrc.LastIndex + 1) % len(rrc.Values)
rrc.Values[rrc.LastIndex] = 0 rrc.Values[rrc.LastIndex] = 0
rrc.Counts[rrc.LastIndex] = 0 rrc.Counts[rrc.LastIndex] = 0
} }

View file

@ -0,0 +1,19 @@
package stats
import "testing"
func TestRobinCounter(t *testing.T) {
rrc := NewRoundRobinCounter(60)
rrc.Add(0, 1)
rrc.Add(50, 2)
if rrc.Count() != 2 {
t.Fatal()
}
if rrc.Sum() != 3 {
t.Fatal()
}
/*
index out of range
*/
rrc.Add(61, 1)
}

View file

@ -32,7 +32,7 @@ var (
masterIp = cmdMaster.Flag.String("ip", "localhost", "master <ip>|<server> address") masterIp = cmdMaster.Flag.String("ip", "localhost", "master <ip>|<server> address")
masterBindIp = cmdMaster.Flag.String("ip.bind", "0.0.0.0", "ip address to bind to") masterBindIp = cmdMaster.Flag.String("ip.bind", "0.0.0.0", "ip address to bind to")
metaFolder = cmdMaster.Flag.String("mdir", os.TempDir(), "data directory to store meta data") metaFolder = cmdMaster.Flag.String("mdir", os.TempDir(), "data directory to store meta data")
masterPeers = cmdMaster.Flag.String("peers", "", "other master nodes in comma separated ip:port list") masterPeers = cmdMaster.Flag.String("peers", "", "other master nodes in comma separated ip:port list, example: 127.0.0.1:9093,127.0.0.1:9094")
volumeSizeLimitMB = cmdMaster.Flag.Uint("volumeSizeLimitMB", 30*1000, "Master stops directing writes to oversized volumes.") volumeSizeLimitMB = cmdMaster.Flag.Uint("volumeSizeLimitMB", 30*1000, "Master stops directing writes to oversized volumes.")
mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats") mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats")
confFile = cmdMaster.Flag.String("conf", "/etc/weedfs/weedfs.conf", "Deprecating! xml configuration file") confFile = cmdMaster.Flag.String("conf", "/etc/weedfs/weedfs.conf", "Deprecating! xml configuration file")

View file

@ -54,7 +54,7 @@ var StatusTpl = template.Must(template.New("status").Parse(`<!DOCTYPE html>
<table class="table table-condensed table-striped"> <table class="table table-condensed table-striped">
<tr> <tr>
<th>Concurrent Connections</th> <th>Concurrent Connections</th>
<td>{{ .Counters.Connections.WeekCounter.Count }}</td> <td>{{ .Counters.Connections.WeekCounter.Sum }}</td>
</tr> </tr>
{{ range $key, $val := .Stats }} {{ range $key, $val := .Stats }}
<tr> <tr>