code: @Override
    public OperationFuture<Boolean> delete(String key, long cas) {
      final CountDownLatch latch = new CountDownLatch(1);
      final OperationFuture<Boolean> rv = new OperationFuture<Boolean>(key,
          latch, operationTimeout, executorService);
  
      DeleteOperation.Callback callback = new DeleteOperation.Callback() {
        @Override
        public void receivedStatus(OperationStatus s) {
          rv.set(s.isSuccess(), s);
        }
  
        @Override
        public void gotData(long cas) {
          rv.setCas(cas);
        }
  
        @Override
        public void complete() {
          latch.countDown();
          rv.signalComplete();
        }
      };
  
      DeleteOperation op;
      if(cas == 0) {
        op = opFact.delete(key, callback);
      } else {
        op = opFact.delete(key, cas, callback);
      }
  
      rv.setOperation(op);
      mconn.enqueueOperation(key, op);
      return rv;
    }
docs: Delete the given key from the cache of the given CAS value applies.
  
  @param key the key to delete
  @param cas the CAS value to apply.
  @return whether or not the operation was performed
  @throws IllegalStateException in the rare circumstance where queue is too
  full to accept any more requests