codislabs / codis Goto Github PK
View Code? Open in Web Editor NEWProxy based Redis cluster solution supporting pipeline and scaling dynamically
License: MIT License
Proxy based Redis cluster solution supporting pipeline and scaling dynamically
License: MIT License
我在单机上(32G内存,8核)测了4种情况,起了3进程并发SET,每个set 200W个key,proxy启动方式参照sample,nohup $codis_path/bin/codis-proxy -c config.ini -L ./log/proxy.log --cpu=4 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000 --log-level=error &,两个proxy的时候这3个进程1个连第一个proxy,两个连第二个。
结果如下,数字表示3个进程SET用时的平均:
为什么差这么多,而且两个proxy性能比单个proxy没任何提升?
本人小白,帮指点下问题可能在哪里,谢谢。
Codis dashboard provide button for changing range-set even if the system is running, but it won't lead to slot migration automatically. So after slot range-set changed, some key may lost from the client view, because the proxy route the request to a different server group. In fact, if we want to add server group dynamically, using "Migrate slot(s)" button is the only right way.
I want to say that the “Slot Control” button on the dashboard may lead to wrong operation.
Is my understanding correct?
use "kill -15"?
What about the sequence?
I didn't find any commands to stop cluster, please tell me. Thanks!
This process is tricky. And I am not sure whether it has some potential problems. How do wandoujia do failover with codis?
related questions:
#11
昨天测试了一下codis,我添加了多个group,每个group中都有master和slave,当我把某个group中的master杀掉之后,slave是不会自动切换成master的,并且连接到proxy的client会有一部分请求失败。我想请问一下你们在实际应用中是怎样做到高可用的。
https://github.com/github/linguist
github is using the above code to detect the language category of projects. the detection code has the ability to ignore vendor files:
Checking other code into your git repo is a common practice. But this often inflates your project's language stats and may even cause your project to be labeled as another language. We are able to identify some of these files and directories and exclude them.
https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml
在使用redis-port导入的时候,出现EOF错我
2015/01/16 13:30:01 [panic]: restore command error = 'EOF'
/home/rlyu/go/src/github.com/wandoulabs/codis/ext/redis-port/cmd/utils.go:125
github.com/wandoulabs/codis/ext/redis-port/cmd.restoreRdbEntry
/home/rlyu/go/src/github.com/wandoulabs/codis/ext/redis-port/cmd/sync.go:68
github.com/wandoulabs/codis/ext/redis-port/cmd.func路014
在proxy代理中出现了以下日志:
2015/01/16 17:25:58 router.go:248: [warning] op: SLOTSRESTORE, key:user:1:18386112980, on: 192.168.85.39:6379, too long 3 seconds, client: 127.0.0.1:39604
2015/01/16 17:53:29 router.go:248: [warning] op: SLOTSRESTORE, key:OriginalActivityAndActivityID, on: 192.168.85.224:6379, too long 6 seconds, client: 127.0.0.1:39609
2015/01/16 17:53:29 router.go:287: [warning] close connection 127.0.0.1:39609, &{r:0xc209b0e0c0 w: Conn:0xc20d426028 CreateAt:2015-01-16 17:08:23.505097375 +0800 CST Ops:2085513}, read tcp 192.168.85.224:6379: i/o timeout
github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:106:
github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:171:
github.com/wandoulabs/codis/pkg/proxy/router/helper.go:130:
github.com/wandoulabs/codis/pkg/proxy/router/router.go:269:
2015/01/16 17:53:29 router.go:248: [warning] op: SLOTSRESTORE, key:UserAndActivityID_17148766, on: 192.168.85.224:6379, too long 5 seconds, client: 127.0.0.1:39606
2015/01/16 17:53:29 router.go:248: [warning] op: SLOTSRESTORE, key:user:1:13468340700, on: 192.168.85.224:6379, too long 5 seconds, client: 127.0.0.1:39601
2015/01/16 17:53:29 router.go:287: [warning] close connection 127.0.0.1:39606, &{r:0xc209afa0c0 w: Conn:0xc20cf0e168 CreateAt:2015-01-16 17:08:23.504010017 +0800 CST Ops:2084977}, read tcp 192.168.85.224:6379: i/o timeout
我们的原有的redis里面可能存在大value,这个应该怎么设置才能保证能迁移过来呢。
When I use redis-port to restore rdb file to codis, an err happened:
"2014/11/27 11:27:49 [panic]: dbnum must be 0, but got 1"
Does redis-port accept rdf file if it consists of keys from different dbs?
codis兼容Twemproxy,但Twemproxy自带脚本pipelined_write.sh和pipelined_read.sh,前者如图
Twemproxy虽然不支持python包redis-py的pipeline方法,但可以用这种方式实现pipeline。但这个脚本连codis proxy的话就没法运行,报socat[14792] E write(3, 0x8f8c00, 16384): Connection reset by peer 错误。是不是因为twemproxy与每个redis服务器都会建立一个连接,每个连接实现了两个FIFO的队列,通 过这两个队列实现对redis的pipeline访问,而codis没实现这种连接队列?
平均约5000条,耗时5秒,pipeline方式导入twemproxy的时候只需要1秒。
../bin/codis-proxy -c config.ini -L ./log/proxy.log --cpu=8 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000
in working dir /codis/bin
, the crash dump file will be /codis/bin.dump. If the working dir is /codis
, /codis.dump: permission denied
will be raised.如题,望明示
Hi, we want to use codis to replace redis, so we need to understand your code change in original redis source code.
In migrate.c, you do a slight change on migrateCommand function:
What's the purpose of these 2 change?
I got continuous warning when slot initializing .
action.go:95: [warning] abnormal waiting time for receivers zk/codis/db_cluster_0/actions/action_0000009102
My script is below:
echo "start zookeeper"
$zookeeper_path/zkServer.sh start
echo "sleep 10s"
sleep 10
echo "done"
echo "slots initializing..."
$codis_path/bin/codis-config -c $conf_path/config_1.ini slot init
echo "done"
codis-version: 1.5
stack trace:
2014/12/24 18:51:07 migrate_task.go:118: [error] ERR Can't connect to target node: Name or service not known
2014/12/24 18:51:07 slot.go:197: [warning] ERR Can't connect to target node: Name or service not known
2014/12/24 18:51:07 main.go:237: [fatal] ERR Can't connect to target node: Name or service not known
github.com/wandoulabs/codis/cmd/cconfig/slot.go:198:
Errors happens after every three or four slots migrated.
All redis nodes host names have been put in /etc/hosts
, so it should not be the problem of dns. Redis nodes are connected and available for service online.
zookeeper works normally with only a single master node, and the proxy is working without any load. All slots are empty, but errors happens with keys in slots as well.
go build -o bin/cconfig ./cmd/cconfig
cmd/cconfig/main.go:16:2: cannot find package "github.com/c4pt0r/cfg" in any of:
/usr/local/go/src/github.com/c4pt0r/cfg (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard.go:15:2: cannot find package "github.com/codegangsta/martini-contrib/binding" in any of:
/usr/local/go/src/github.com/codegangsta/martini-contrib/binding (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard.go:16:2: cannot find package "github.com/codegangsta/martini-contrib/render" in any of:
/usr/local/go/src/github.com/codegangsta/martini-contrib/render (from $GOROOT)
($GOPATH not set)
cmd/cconfig/action.go:10:2: cannot find package "github.com/docopt/docopt-go" in any of:
/usr/local/go/src/github.com/docopt/docopt-go (from $GOROOT)
($GOPATH not set)
cmd/cconfig/migrate_helper.go:13:2: cannot find package "github.com/garyburd/redigo/redis" in any of:
/usr/local/go/src/github.com/garyburd/redigo/redis (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard.go:18:2: cannot find package "github.com/go-martini/martini" in any of:
/usr/local/go/src/github.com/go-martini/martini (from $GOROOT)
($GOPATH not set)
cmd/cconfig/action.go:7:2: cannot find package "github.com/juju/errors" in any of:
/usr/local/go/src/github.com/juju/errors (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard.go:19:2: cannot find package "github.com/martini-contrib/cors" in any of:
/usr/local/go/src/github.com/martini-contrib/cors (from $GOROOT)
($GOPATH not set)
cmd/cconfig/action.go:11:2: cannot find package "github.com/ngaut/logging" in any of:
/usr/local/go/src/github.com/ngaut/logging (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard.go:8:2: cannot find package "github.com/ngaut/zkhelper" in any of:
/usr/local/go/src/github.com/ngaut/zkhelper (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard_apis.go:13:2: cannot find package "github.com/nu7hatch/gouuid" in any of:
/usr/local/go/src/github.com/nu7hatch/gouuid (from $GOROOT)
($GOPATH not set)
cmd/cconfig/action.go:8:2: cannot find package "github.com/wandoulabs/codis/pkg/models" in any of:
/usr/local/go/src/github.com/wandoulabs/codis/pkg/models (from $GOROOT)
($GOPATH not set)
cmd/cconfig/dashboard_apis.go:10:2: cannot find package "github.com/wandoulabs/codis/pkg/utils" in any of:
/usr/local/go/src/github.com/wandoulabs/codis/pkg/utils (from $GOROOT)
($GOPATH not set)
make: *** [build] Error 1
Above functions have multi keys, maybe need to be added into blacklist or handled in multioperator.go?
SINTER
SINTERSTORE
SUNION
SUNIONSTORE
ZINTERSTORE
ZUNIONSTORE
Hi
I try to use codis for the ledisdb cluster solution. I see your source that you add some slot
commands in redis source, can I use codis directly if I can implement these slot
commands in LedisDB, do I need do more?
Thanks.
Hi @c4pt0r, I change the codis source to build my own proxy supporting ledisdb and origin redis, I name it xcodis
(https://github.com/siddontang/xcodis), if you or your colleague care about this naming, I will change it.
Btw, thanks this great and awesome application again, I will keep on following your update. 😄
docker image?
codis only support db 0 and saves the slot keys in a hash slot, why not using different db? e.g, if the slot for a key is 100, we can use db 100 to store it, and we can use dbsize
to get the key num in a slot. is it more simpler and easier?
Maybe the problem is that codis must use select
first which may hit a little performance, but I think it is acceptable.
When i run bootstrap.sh, come across error like this
downloading dependcies, it may take a few minutes... go build -o bin/codis-proxy ./cmd/proxy go build -o bin/codis-config ./cmd/cconfig make -j4 -C extern/redis-2.8.13/ make[1]: Entering directory `/opt/down/codis/extern/redis-2.8.13' cd src && make all make[2]: Entering directory `/opt/down/codis/extern/redis-2.8.13/src' LINK redis-server cc: ../deps/lua/src/liblua.a:没有那个文件或目录 make[2]: *** [redis-server] 错误 1 make[2]: Leaving directory `/opt/down/codis/extern/redis-2.8.13/src' make[1]: *** [all] 错误 2 make[1]: Leaving directory `/opt/down/codis/extern/redis-2.8.13' make: *** [build-server] 错误 2
架构图的下面的最左边的那个redis-group是不是和proxy之间少连了一根线啊?
In file included from adlist.c:34:
zmalloc.h:51:29: error: operator '==' has no left operand
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[2]: *** [adlist.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ae.c:44:
zmalloc.h:51:29: error: operator '==' has no left operand
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
In file included from dict.c:47:
zmalloc.h:51:29: error: operator '==' has no left operand
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[2]: *** [ae.o] Error 1
make[2]: *** [dict.o] Error 1
In file included from redis.h:60,
from redis.c:30:
zmalloc.h:51:29: error: operator '==' has no left operand
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[2]: *** [redis.o] Error 1
make[2]: Leaving directory /home/codis/src/github.com/wandoulabs/codis/extern/redis-2.8.13/src' make[1]: *** [all] Error 2 make[1]: Leaving directory
/home/codis/src/github.com/wandoulabs/codis/extern/redis-2.8.13'
make: *** [build-server] Error 2
docker环境:ubuntu:14.04
codis-proxy.dump:
wait to be online proxy_1
good, we are on line proxy_1
runtime/cgo: pthread_create failed: Resource temporarily unavailable
SIGABRT: abort
PC=0x7fa0fcd98bb9
goroutine 1 [IO wait]:
net.runtime_pollWait(0x7fa0fd5316b8, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc2119051b0, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc2119051b0, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).accept(0xc211905150, 0x8419d0, 0x0, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_unix.go:382 +0x2c2
net.(_TCPListener).AcceptTCP(0xc2118fc428, 0x4777d6, 0x7fa0fd390cf0, 0x4777d6)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:233 +0x47
net.(_TCPListener).Accept(0xc2118fc428, 0x7fa0fd531ca0, 0xc212793280, 0x0, 0x0)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:243 +0x27
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run(0xc21012b000)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:345 +0x234
main.main()
/opt/codis/cmd/proxy/main.go:112 +0xb35
goroutine 5 [IO wait]:
net.runtime_pollWait(0x7fa0fd5318b0, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc210100060, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc210100060, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).accept(0xc210100000, 0x8419d0, 0x0, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_unix.go:382 +0x2c2
net.(_TCPListener).AcceptTCP(0xc2100bf040, 0x44f90b, 0x7fa0fd3ace78, 0x44f90b)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:233 +0x47
net.(_TCPListener).Accept(0xc2100bf040, 0x7fa0fd531ca0, 0xc2100b9140, 0xc21157d300, 0x0)
/usr/lib/go/src/pkg/net/tcpsock_posix.go:243 +0x27
net/http.(_Server).Serve(0xc2101070f0, 0x7fa0fd530910, 0xc2100bf040, 0x0, 0x0)
/usr/lib/go/src/pkg/net/http/server.go:1622 +0x91
net/http.(*Server).ListenAndServe(0xc2101070f0, 0xc2101070f0, 0x559570)
/usr/lib/go/src/pkg/net/http/server.go:1612 +0xa0
net/http.ListenAndServe(0x7fff5066ff2c, 0xd, 0x0, 0x0, 0x1b, ...)
/usr/lib/go/src/pkg/net/http/server.go:1677 +0x6d
created by main.main
/opt/codis/cmd/proxy/main.go:105 +0x903
goroutine 6 [semacquire]:
sync.runtime_Semacquire(0xc2100bf070)
/usr/lib/go/src/pkg/runtime/sema.goc:199 +0x30
sync.(_WaitGroup).Wait(0xc210145000)
/usr/lib/go/src/pkg/sync/waitgroup.go:127 +0x14b
github.com/ngaut/go-zookeeper/zk.(_Conn).loop(0xc2100391a0)
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:227 +0x597
github.com/ngaut/go-zookeeper/zk.func·001()
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:145 +0x2b
created by github.com/ngaut/go-zookeeper/zk.ConnectWithDialer
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:149 +0x386
goroutine 76 [finalizer wait]:
runtime.park(0x40cf30, 0xb70148, 0xb6c548)
/usr/lib/go/src/pkg/runtime/proc.c:1342 +0x66
runfinq()
/usr/lib/go/src/pkg/runtime/mgc0.c:2279 +0x84
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394
goroutine 9 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 10 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 11 [runnable]:
github.com/garyburd/redigo/redis.(_conn).writeBytes(0xc211ca6be0, 0xc2127c2065, 0x26, 0x51, 0x26, ...)
/gocode/src/github.com/garyburd/redigo/redis/conn.go:144
github.com/garyburd/redigo/redis.(_conn).writeCommand(0xc211ca6be0, 0x7936a0, 0x4, 0xc2127e2030, 0x1, ...)
/gocode/src/github.com/garyburd/redigo/redis/conn.go:170 +0x370
github.com/garyburd/redigo/redis.(_conn).Do(0xc211ca6be0, 0x7936a0, 0x4, 0xc2127e2030, 0x1, ...)
/gocode/src/github.com/garyburd/redigo/redis/conn.go:393 +0x199
github.com/garyburd/redigo/redis.(_pooledConnection).Do(0xc21278c5e0, 0x7936a0, 0x4, 0xc2127e2030, 0x1, ...)
/gocode/src/github.com/garyburd/redigo/redis/pool.go:365 +0xce
github.com/wandoulabs/codis/pkg/proxy/router.(_MultiOperator).mgetResults(0xc210102a50, 0xc2127a2600, 0x0, 0x0, 0x0, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:83 +0x259
github.com/wandoulabs/codis/pkg/proxy/router.(_MultiOperator).mget(0xc210102a50, 0xc2127a2600)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:109 +0x94
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:69 +0x11e
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 12 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 13 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 14 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 15 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 16 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 17 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 18 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 19 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 20 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 21 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 22 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 23 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 24 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 25 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 26 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 27 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 28 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 29 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 30 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 31 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 32 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 33 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 34 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 35 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 36 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 37 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 38 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 39 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 40 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 41 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 42 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 43 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 44 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 45 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 46 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 47 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 48 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 49 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 50 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 51 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 52 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 53 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 54 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 55 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 56 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 57 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 58 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 59 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 60 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 61 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 62 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 63 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 64 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 65 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 66 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 67 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 68 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 69 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 70 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 71 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 72 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*MultiOperator).work(0xc210102a50)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:66 +0x3d
created by github.com/wandoulabs/codis/pkg/proxy/router.NewMultiOperator
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/multioperator.go:31 +0xc1
goroutine 73 [syscall]:
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394
goroutine 74 [runnable]:
reflect.Value.NumField(0x725be0, 0xc2127a5200, 0x196, 0x0)
/usr/lib/go/src/pkg/reflect/value.go:1212
github.com/ngaut/go-zookeeper/zk.encodePacketValue(0xc210148004, 0x9ffffc, 0x9ffffc, 0x725be0, 0xc2127a5200, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/structs.go:530 +0xc8b
github.com/ngaut/go-zookeeper/zk.encodePacket(0xc210148004, 0x9ffffc, 0x9ffffc, 0x676c00, 0xc2127a5200, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/structs.go:511 +0x151
github.com/ngaut/go-zookeeper/zk.(_Conn).sendLoop(0xc2100391a0, 0x7fa0fd531ca0, 0xc2100bfaa8, 0xc210144000, 0x0, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:451 +0x7fd
github.com/ngaut/go-zookeeper/zk.func·002()
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:212 +0x59
created by github.com/ngaut/go-zookeeper/zk.(_Conn).loop
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:215 +0x528
goroutine 75 [runnable]:
github.com/ngaut/go-zookeeper/zk.decodePacketValue(0xc210b53000, 0x10, 0xa00000, 0x692d40, 0xc212782900, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/structs.go:423
github.com/ngaut/go-zookeeper/zk.decodePacketValue(0xc210b53000, 0x10, 0xa00000, 0x732e60, 0xc212782900, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/structs.go:446 +0xd9e
github.com/ngaut/go-zookeeper/zk.decodePacket(0xc210b53000, 0x10, 0xa00000, 0x676c80, 0xc212782900, ...)
/gocode/src/github.com/ngaut/go-zookeeper/zk/structs.go:420 +0x151
github.com/ngaut/go-zookeeper/zk.(_Conn).recvLoop(0xc2100391a0, 0x7fa0fd531ca0, 0xc2100bfaa8, 0x0, 0x0)
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:493 +0x3f8
github.com/ngaut/go-zookeeper/zk.func·003()
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:219 +0x5e
created by github.com/ngaut/go-zookeeper/zk.(_Conn).loop
/gocode/src/github.com/ngaut/go-zookeeper/zk/conn.go:225 +0x587
goroutine 77 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router/topology.(_Topology).doWatch(0xc210051cc0, 0xc210b4a080, 0xc2100ce800)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:131 +0x3b
created by github.com/wandoulabs/codis/pkg/proxy/router/topology.(_Topology).WatchNode
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:165 +0xfa
goroutine 92 [runnable]:
github.com/ngaut/gostats.(_Counters).Add(0xc210102a20, 0x795880, 0x3, 0x1)
/gocode/src/github.com/ngaut/gostats/counters.go:41 +0xa6
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc21157b300, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:222 +0x42e
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc211c20290)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 79 [IO wait]:
net.runtime_pollWait(0x7fa0fd531760, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc211576c30, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc211576c30, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).Read(0xc211576bd0, 0xc211599000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x2a0
net.(_conn).Read(0xc2100b9140, 0xc211599000, 0x1000, 0x1000, 0x72fdc0, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xc5
net/http.(_liveSwitchReader).Read(0xc21157d328, 0xc211599000, 0x1000, 0x1000, 0x7fa0f9190ab8, ...)
/usr/lib/go/src/pkg/net/http/server.go:204 +0xa5
io.(_LimitedReader).Read(0xc2115935e0, 0xc211599000, 0x1000, 0x1000, 0x101, ...)
/usr/lib/go/src/pkg/io/io.go:398 +0xbb
bufio.(_Reader).fill(0xc211582720)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0x110
bufio.(_Reader).ReadSlice(0xc211582720, 0xc20000000a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:274 +0x204
bufio.(_Reader).ReadLine(0xc211582720, 0x0, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:305 +0x63
net/textproto.(_Reader).readLineSlice(0xc211597390, 0x7fa0fd527000, 0x683f80, 0x4211a3, 0x4227b2, ...)
/usr/lib/go/src/pkg/net/textproto/reader.go:55 +0x61
net/textproto.(_Reader).ReadLine(0xc211597390, 0xc2126f1750, 0x0, 0xc21159a000, 0x0)
/usr/lib/go/src/pkg/net/textproto/reader.go:36 +0x27
net/http.ReadRequest(0xc211582720, 0xc2126f1750, 0x0, 0x0)
/usr/lib/go/src/pkg/net/http/request.go:526 +0x88
net/http.(_conn).readRequest(0xc21157d300, 0x0, 0x0, 0x0)
/usr/lib/go/src/pkg/net/http/server.go:575 +0x1bb
net/http.(_conn).serve(0xc21157d300)
/usr/lib/go/src/pkg/net/http/server.go:1123 +0x3b4
created by net/http.(_Server).Serve
/usr/lib/go/src/pkg/net/http/server.go:1644 +0x28b
goroutine 80 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(*Server).handleTopoEvent(0xc21012b000)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:510 +0x5e
created by github.com/wandoulabs/codis/pkg/proxy/router.NewServer
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:609 +0xa33
goroutine 90 [runnable]:
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc211598200, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:252 +0x6db
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc211c20080)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(*Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 86 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router/topology.(_Topology).doWatch(0xc210051cc0, 0xc211909780, 0xc2100ce800)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:131 +0x3b
created by github.com/wandoulabs/codis/pkg/proxy/router/topology.(_Topology).WatchChildren
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:155 +0xfa
goroutine 101 [runnable]:
github.com/wandoulabs/codis/pkg/proxy/parser.(_Resp).Bytes(0xc212794580, 0x11c20428, 0x40c27a, 0x700920, 0x761140, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:335 +0xea
github.com/wandoulabs/codis/pkg/proxy/router.write2Redis(0xc212794580, 0x7fa0f9146b48, 0xc2118b69e0, 0x7fa0f9146b48, 0xc2118b69e0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/helper.go:144 +0x27
github.com/wandoulabs/codis/pkg/proxy/router.forward(0x7fa0f9146a60, 0xc212794c00, 0x7fa0f9146b00, 0xc2118b69e0, 0xc212794580, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/helper.go:169 +0x1c7
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc212794c00, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:264 +0x907
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc2127a30e0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 96 [IO wait]:
net.runtime_pollWait(0x7fa0f914a748, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc211c0e300, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc211c0e300, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).Read(0xc211c0e2a0, 0xc211be9000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x2a0
net.(_conn).Read(0xc2118bfbd0, 0xc211be9000, 0x1000, 0x1000, 0xc212115000, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xc5
bufio.(_Reader).fill(0xc2118fe360)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0x110
bufio.(_Reader).ReadSlice(0xc2118fe360, 0xc20fd9660a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:274 +0x204
bufio.(_Reader).ReadBytes(0xc2118fe360, 0x10000c21155f00a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:355 +0xbf
github.com/wandoulabs/codis/pkg/proxy/parser.readLine(0xc2118fe360, 0xc21010ad50, 0x77fa60, 0x40626c, 0x683e60, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:104 +0x37
github.com/wandoulabs/codis/pkg/proxy/parser.Parse(0xc2118fe360, 0xc2126949d0, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:169 +0x35
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc211cda0c0, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:197 +0x75
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc2118bfbd0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 97 [chan receive]:
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).filter(0xc21012b000, 0xc2127a1d18, 0x4, 0xc212712800, 0x14, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:189 +0x515
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc211c87580, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:216 +0x36c
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc211c7e798)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 98 [IO wait]:
net.runtime_pollWait(0x7fa0f914a550, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc21194ad10, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc21194ad10, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).Read(0xc21194acb0, 0xc211bbc000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x2a0
net.(_conn).Read(0xc211c855d8, 0xc211bbc000, 0x1000, 0x1000, 0x5, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xc5
bufio.(_Reader).fill(0xc211ca73c0)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0x110
bufio.(_Reader).ReadSlice(0xc211ca73c0, 0xc20fd9ab0a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:274 +0x204
bufio.(_Reader).ReadBytes(0xc211ca73c0, 0x10000c21155f00a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:355 +0xbf
github.com/wandoulabs/codis/pkg/proxy/parser.readLine(0xc211ca73c0, 0xc21010ad50, 0x77fa60, 0x40626c, 0x683e60, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:104 +0x37
github.com/wandoulabs/codis/pkg/proxy/parser.Parse(0xc211ca73c0, 0xc2125ba418, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:169 +0x35
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc211ba7380, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:197 +0x75
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc211c855d8)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 99 [IO wait]:
net.runtime_pollWait(0x7fa0f914a4a8, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x6a
net.(_pollDesc).Wait(0xc21194a6f0, 0x72, 0x7fa0fd5300e8, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x34
net.(_pollDesc).WaitRead(0xc21194a6f0, 0xb, 0x7fa0fd5300e8)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x30
net.(_netFD).Read(0xc21194a690, 0xc2125b1000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x2a0
net.(_conn).Read(0xc2125a3fa8, 0xc2125b1000, 0x1000, 0x1000, 0xc211ebd000, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xc5
bufio.(_Reader).fill(0xc21159f360)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0x110
bufio.(_Reader).ReadSlice(0xc21159f360, 0xc20fd8720a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:274 +0x204
bufio.(_Reader).ReadBytes(0xc21159f360, 0x10000c21155f00a, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:355 +0xbf
github.com/wandoulabs/codis/pkg/proxy/parser.readLine(0xc21159f360, 0xc21010ad50, 0x77fa60, 0x40626c, 0x683e60, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:104 +0x37
github.com/wandoulabs/codis/pkg/proxy/parser.Parse(0xc21159f360, 0xc212785a68, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:169 +0x35
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc2125aaf40, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:197 +0x75
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc2125a3fa8)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 103 [semacquire]:
sync.runtime_Semacquire(0xc210102a24)
/usr/lib/go/src/pkg/runtime/sema.goc:199 +0x30
sync.(_Mutex).Lock(0xc210102a20)
/usr/lib/go/src/pkg/sync/mutex.go:66 +0xd6
github.com/ngaut/gostats.(_Counters).Add(0xc210102a20, 0x795880, 0x3, 0x1)
/gocode/src/github.com/ngaut/gostats/counters.go:40 +0x32
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc2127a6c40, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:222 +0x42e
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc2127931a8)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(*Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 104 [runnable]:
github.com/wandoulabs/codis/pkg/proxy/parser.(_Resp).Bytes(0xc2127e1000, 0x118fc8d0, 0x40c27a, 0x700920, 0x761140, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:335 +0xea
github.com/wandoulabs/codis/pkg/proxy/router.write2Redis(0xc2127e1000, 0x7fa0f9146b48, 0xc211883560, 0x7fa0f9146b48, 0xc211883560)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/helper.go:144 +0x27
github.com/wandoulabs/codis/pkg/proxy/router.forward(0x7fa0f9146a60, 0xc212790b80, 0x7fa0f9146b00, 0xc211883560, 0xc2127e1000, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/helper.go:169 +0x1c7
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc212790b80, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:264 +0x907
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc2127931c8)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
goroutine 105 [runnable]:
github.com/wandoulabs/codis/pkg/proxy/parser.defaultGetKeys(0xc21278f180, 0xc21001ec00, 0xc2127a3ef0, 0x4, 0x84e200, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:149
github.com/wandoulabs/codis/pkg/proxy/parser.(_Resp).GetOpKeys(0xc21278f180, 0xc2126b7344, 0x4, 0xc, 0x0, ...)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/parser/parser.go:139 +0x336
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).redisTunnel(0xc21012b000, 0xc212790900, 0x0, 0x0)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:202 +0xd1
github.com/wandoulabs/codis/pkg/proxy/router.(_Server).handleConn(0xc21012b000, 0x7fa0fd531ca0, 0xc212793280)
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:300 +0x2c4
created by github.com/wandoulabs/codis/pkg/proxy/router.(_Server).Run
/gocode/src/github.com/wandoulabs/codis/pkg/proxy/router/router.go:350 +0x336
rax 0x0
rbx 0xb
rcx 0xffffffffffffffff
rdx 0x6
rdi 0x45
rsi 0x67
rbp 0x7fa0f88ccbb0
rsp 0x7fa0f88cc9e8
r8 0x7fa0f88cd700
r9 0x616e7520796c6972
r10 0x8
r11 0x202
r12 0x7fa0d40008c0
r13 0x0
r14 0x73c
r15 0x10
rip 0x7fa0fcd98bb9
rflags 0x202
cs 0x33
fs 0x0
gs 0x0
http://192.168.13.202:18087/admin/ 可以正常访问
但是proxy启动起来以后,果断时间就自己关闭了
zk也可以正常访问,这个是什么原因呢?
proxy.log日志
2014/12/03 17:28:30 router.go:544: [warning] proxy_1 wait to be online
2014/12/03 17:28:34 router.go:544: [warning] proxy_1 wait to be online
2014/12/03 17:28:37 router.go:544: [warning] proxy_1 wait to be online
2014/12/03 17:28:40 router.go:544: [warning] proxy_1 wait to be online
2014/12/03 17:28:43 router.go:534: [info] we are online proxy_1
2014/12/03 17:28:43 router.go:86: [info] fill slot 0, force false
2014/12/03 17:28:43 router.go:92: [fatal] zk: node does not exist
github.com/wandoulabs/codis/pkg/models/server_group.go:294:
github.com/wandoulabs/codis/pkg/models/server_group.go:85:
github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:55:
按照文档介绍配置之后访问:http://localhost:18087/admin
提示
404 page not found
hi,
if the master instance down, does codis support auto failover, or it just set a master-slave mode, if the master down ,wo need manual switch the slave as master?
https://github.com/wandoulabs/codis/blob/master/doc/benchmark_zh.md
请问下这里的测试结果 Latency 为什么这么高呢?默认会测试什么命令集呢?-d 100是大小,没有那么多,理论应该Latency很小?看了下测试结果都是几十ms的
我测试一下,无论原来proxy状态是online还是offline,点击mark offline或mark online都没有切换成功,还是原来状态,需要手动输入命令,才能成功切换上线,使用命令切换下线,一直卡着不动。
我使用命令/redis-benchmark -h 127.0.0.1 -p 19000 -t set,get,incr -n 1000000 -r 100000000,网页管理界面显示:
Overview
Product Name: test
Keys: 6876396
Mem Used: 1100.57 MB
Performace: 0 OP/s
能把缩进从制表符改成空格吗?在 GitHub 上一个缩进八个字符实在太蛋疼了...
使用生产数据压力测试时的四组Redis实例内存占用分别为,227MB,498MB,163MB,99MB 但在web界面按了Auto Rebalance 按钮后,并没有实现按照内存占用的大小来均衡。不知道是什么原因,因为之前简单测试时是可以实现的。
codis depends some 3rd go packages, maybe using godep or other is better than go get -u
directly in bootstrap.sh. :-)
no group 0 in zk, but start proxy, it throws out the error:
router.go:92: [fatal] github.com/wandoulabs/codis/pkg/models/server_group.go:92: group 0 not found github.com/wandoulabs/codis/pkg/proxy/router/topology/topology.go:55:
zk details:
[zk: localhost:2181(CONNECTED) 43] ls /zk/codis/db_test/servers
[group_1, group_3, group_2]
[zk: localhost:2181(CONNECTED) 44]
我按照文档的的格式写的config.ini如下
zk=zk://zk01:2181,zk02:2181
product=test
proxy_id=proxy_1
但是启动时err却报
2014/11/10 17:34:00 Failed to connect to zk://zk01:2181: dial tcp: too many colons in address zk://zk01:2181
go get github.com/wandoulabs/codis
提示 can't load package: package github.com/wandoulabs/codis: no buildable Go source xxxx
加上-u参数依然
之前的redis-server的版本是2.8.12,想用用redis-port从里面导数据到codis里。会报错:
./extern/redis-port/redis-port sync -f 127.0.0.1:6379 -t codis:20001 -n 1
2015/01/07 12:12:25 [ncpu=1] sync from '127.0.0.1:6379' to codis:20001'
2015/01/07 12:12:25 [panic]: parse rdb checksum error = 'checksum validation failed'
******/lib/go/deps/src/github.com/wandoulabs/codis/extern/redis-port/cmd/worker.go:67
github.com/wandoulabs/codis/extern/redis-port/cmd.func·018
如题,
master, 1.4, 1.5, bugfix, bug_fix 这么多分支, 哪个可以放到生产环境中??
麻烦加一个releases 的包出来.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.