My own experiments in my own environment where ZK is being used purely for coordination at a fairly low transaction rate (tens to hundreds of ops per second, mostly status updates) made me feel that disk throughput would only be detectable as an issue for pretty massively abused ZK applications. The impact of disk writing is surprisingly small even for pretty high throughput cases and for moderate or low throughput, it is just not detectable.
Those seem to share a lot with the applications that could benefit from being able to restart new servers efficiently from disk snapshot and log and having the ability to restart the entire cluster with previous state. On Wed, Jul 21, 2010 at 9:28 AM, Benjamin Reed <br...@yahoo-inc.com> wrote: > i did a benchmark a while back to see the effect of turning off the disk. > (it wasn't as big as you would think.) i had to modify the code. there is an > option to turn off the sync in the config that will get you most of the > performance you would get by turning off the disk entirely. > > ben > > On 07/20/2010 11:01 PM, Ashwin Jayaprakash wrote: > >> I did try a quick test on Windows (yes, some of us use Windows :) >> >> I thought simply changing the "dataDir" to the "/dev/null" equivalent on >> Windows would do the trick. It didn't work. It looks like a Java issue >> because I noticed inconsistencies in the File API regarding this. I wrote >> about it here - >> http://javaforu.blogspot.com/2010/07/devnull-on-windows.html >> devnull-on-windows . >> >> BTW the Windows equivalent is "nul". >> >> This is the error I got on Windows (below). The mkdirs() returns false. As >> noted on my blog, it returns true for some cases. >> >> 2010-07-20 22:25:47,851 - FATAL [main:zookeeperserverm...@62] - >> Unexpected >> exception, exiting abnormally >> java.io.IOException: Unable to create data directory nul:\version-2 >> at >> >> org.apache.zookeeper.server.persistence.FileTxnSnapLog.<init>(FileTxnSnapLog.java:79) >> at >> >> org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:102) >> at >> >> org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:85) >> at >> >> org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:51) >> at >> >> org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:108) >> at >> >> org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76) >> >> >> Ashwin. >> >> > >