While not an expert on the interworkings of doozerd it does state under use cases that it is intented for infrequently changing data.... this would indicate that it is not supposed to handle nosql write performance.
Hi all,
I am running tests to benchmark the performance of Doozerd. I am using ruby fraggle client to get asynchronous test.
I tried running a test where I add nearly 100,000 messages to Doozerd. In that test, Doozerd server crashes always. The jist of the logs are like this:
----- goroutine created by -----
doozer/server.*txn·set+0xe0 /home/kr/src/doozerd/src/pkg/server/txn.go:108
goroutine 505656 [4]:
runtime.gosched+0x5c /home/kr/src/go/src/pkg/runtime/proc.c:603
runtime.gosched()
runtime.chanrecv+0x177 /home/kr/src/go/src/pkg/runtime/chan.c:361
runtime.chanrecv(0xfc3b034840, 0x7f0197de9dc8, 0x0, 0x0, 0xfc3b034840, ...)
runtime.chanrecv1+0x4a /home/kr/src/go/src/pkg/runtime/chan.c:424
runtime.chanrecv1(0xfc3b034840, 0xfc3f8f67a0)
doozer/peer.*proposer·Propose+0x1fb /home/kr/src/doozerd/src/pkg/peer/peer.go:42
doozer/peer.*proposer·Propose(0xf840046540, 0xfc3ef3e800, 0x7d0000007d, 0x0, 0x0, ...)
doozer/consensus.Set+0x113 /home/kr/src/doozerd/src/pkg/consensus/consensus.go:19
doozer/consensus.Set(0xf84002e540, 0xf840046540, 0xfc3f8f62a0, 0x10, 0xfa206c3f00, ...)
doozer/server._func_002+0x8a /home/kr/src/doozerd/src/pkg/server/txn.go:101
doozer/server._func_002(0xfc3e582e18, 0x410c49)
runtime.goexit /home/kr/src/go/src/pkg/runtime/proc.c:178
runtime.goexit()
----- goroutine created by -----
doozer/server.*txn·set+0xe0 /home/kr/src/doozerd/src/pkg/server/txn.go:108
goroutine 505653 [4]:
runtime.gosched+0x5c /home/kr/src/go/src/pkg/runtime/proc.c:603
runtime.gosched()
runtime.chanrecv+0x177 /home/kr/src/go/src/pkg/runtime/chan.c:361
runtime.chanrecv(0xfc3f41d0b0, 0x7f0197de6dc8, 0x0, 0x0, 0xfc3f41d0b0, ...)
runtime.chanrecv1+0x4a /home/kr/src/go/src/pkg/runtime/chan.c:424
runtime.chanrecv1(0xfc3f41d0b0, 0xfc3ef38fa0)
doozer/peer.*proposer·Propose+0x1fb /home/kr/src/doozerd/src/pkg/peer/peer.go:42
doozer/peer.*proposer·Propose(0xf840046540, 0xfc3ef48180, 0x7d0000007d, 0x0, 0x0, ...)
doozer/consensus.Set+0x113 /home/kr/src/doozerd/src/pkg/consensus/consensus.go:19
doozer/consensus.Set(0xf84002e540, 0xf840046540, 0xfc3ef38ee0, 0x10, 0xfc39cbaaa0, ...)
doozer/server._func_002+0x8a /home/kr/src/doozerd/src/pkg/server/txn.go:101
doozer/server._func_002(0xfc3e582a28, 0x410c49)
runtime.goexit /home/kr/src/go/src/pkg/runtime/proc.c:178
runtime.goexit()
----- goroutine created by -----
doozer/server.*txn·set+0xe0 /home/kr/src/doozerd/src/pkg/server/txn.go:108
goroutine 23 [4]:
runtime.gosched+0x5c /home/kr/src/go/src/pkg/runtime/proc.c:603
runtime.gosched()
runfinq+0x50 /home/kr/src/go/src/pkg/runtime/mgc0.c:671
runfinq()
runtime.goexit /home/kr/src/go/src/pkg/runtime/proc.c:178
runtime.goexit()
----- goroutine created by -----
runtime.gc /home/kr/src/go/src/pkg/runtime/mgc0.c:547
Please provide some insight on this.
100, 000 asynch writes is hardly infrequently changing data