import com.couchbase.client.CouchbaseClient; import com.couchbase.client.CouchbaseConnectionFactoryBuilder; import com.google.common.base.Stopwatch; import net.spy.memcached.MemcachedNode; import net.spy.memcached.ObserveResponse; import net.spy.memcached.PersistTo; import net.spy.memcached.ReplicateTo; import net.spy.memcached.internal.OperationFuture; import java.net.URI; import java.util.Arrays; import java.util.Map; import java.util.concurrent.TimeUnit; /** * Created with IntelliJ IDEA. * User: michael * Date: 6/6/13 * Time: 3:21 PM * To change this template use File | Settings | File Templates. */ public class Main { public static void main(String[] args) throws Exception { CouchbaseConnectionFactoryBuilder builder = new CouchbaseConnectionFactoryBuilder(); CouchbaseClient client = new CouchbaseClient(builder.buildCouchbaseConnection(Arrays.asList(new URI("http://192.168.56.101:8091/pools")), "default", "")); Stopwatch setWatch = new Stopwatch().start(); OperationFuture setFuture = client.set("foo", "bar"); setFuture.get(); setWatch.stop(); Stopwatch observeWatch = new Stopwatch().start(); while (true) { Map observeResponse = client.observe("foo", setFuture.getCas()); int doneCount = 0; for (ObserveResponse r : observeResponse.values()) { if (r.equals(ObserveResponse.FOUND_NOT_PERSISTED) || r.equals(ObserveResponse.FOUND_PERSISTED)) { doneCount++; } } if(doneCount == 2) { break; } else { System.out.println(observeResponse); } } observeWatch.stop(); System.out.println("Sync Set took: " + setWatch.elapsed(TimeUnit.MILLISECONDS)); System.out.println("ObservePoll took: " + observeWatch.elapsed(TimeUnit.MILLISECONDS)); client.shutdown(); } }