code: public Object doOp(Op.Type type, long id, Object data, Object extra, Transaction txn) throws TimeoutException {
          if (!getCluster().isMaster() && type != Op.Type.LSTN)
              throw new IllegalStateException("Node is a slave. Cannot run grid operations");
  
          if (LOG.isDebugEnabled())
              LOG.debug("Run(fast): Op.{}(line:{}{}{})", type, hex(id), ((data != null && LOG.isTraceEnabled()) ? ", data:" + data : ""), (extra != null ? ", extra:" + extra : ""));
  
          Object result = runFastTrack(id, type, data, extra, txn);
          if (result instanceof Op)
              return doOp((Op) result);
          else if (result == PENDING) {
              if (Thread.currentThread() instanceof CommThread)
                  throw new RuntimeException("This operation blocks a comm thread.");
              return doOp(new Op(type, id, data, extra, txn)); // "slow" track
          } else
              return result;
      }
docs: ///////////////////////// Execution flow ///////////////////////////////////////////