I got it. Hash shouldnt be tied to addr.

master
Bel LaPointe 2019-04-24 14:03:13 -06:00
parent f912272912
commit b1466a3e48
2 changed files with 14 additions and 4 deletions

View File

@ -11,7 +11,7 @@ import (
func main() {
as := args.NewArgSet()
as.Append(args.STRING, "addr", "csv addr(s) of server(s)", "http://localhost:21412")
as.Append(args.STRING, "addr", "csv key;addr(s) of server(s)", "key;http://localhost:21412")
as.Append(args.INT, "r", "read concern", 1)
as.Append(args.INT, "w", "write concern", 1)
if err := as.Parse(); err != nil {

View File

@ -29,7 +29,17 @@ func (h hasher) Sum64(data []byte) uint64 {
type netAddr string
func (na netAddr) String() string {
return string(na)
return strings.Split(string(na), ";")[0]
}
func (na netAddr) Addr() string {
ind := strings.Index(string(na), ";")
if ind < 0 {
ind = 0
} else {
ind += 1
}
return string(na)[ind:]
}
func (na netAddr) Network() string {
@ -72,7 +82,7 @@ func New(rConcern, wConcern int, addrs ...string) (*Client, error) {
hash.Add(netAddr(addr))
}
for _, addr := range hash.GetMembers() {
conn, err := net.Dial("tcp", strings.TrimPrefix(strings.TrimPrefix(addr.String(), "http://"), "https://"))
conn, err := net.Dial("tcp", strings.TrimPrefix(strings.TrimPrefix(addr.(netAddr).Addr(), "http://"), "https://"))
if err != nil {
return nil, err
}
@ -99,7 +109,7 @@ func (c *Client) scatterGather(key string, forEach func(addr string, each chan r
return nil, err
}
for _, member := range members {
go forEach(member.String(), each)
go forEach(member.(netAddr).Addr(), each)
}
go func() {
out := make(map[string]int)