code: public boolean accepts(OpOrder.Group opGroup, ReplayPosition replayPosition)
      {
          // if the barrier hasn't been set yet, then this memtable is still taking ALL writes
          OpOrder.Barrier barrier = this.writeBarrier;
          if (barrier == null)
              return true;
          // if the barrier has been set, but is in the past, we are definitely destined for a future memtable
          if (!barrier.isAfter(opGroup))
              return false;
          // if we aren't durable we are directed only by the barrier
          if (replayPosition == null)
              return true;
          while (true)
          {
              // otherwise we check if we are in the past/future wrt the CL boundary;
              // if the boundary hasn't been finalised yet, we simply update it to the max of
              // its current value and ours; if it HAS been finalised, we simply accept its judgement
              // this permits us to coordinate a safe boundary, as the boundary choice is made
              // atomically wrt our max() maintenance, so an operation cannot sneak into the past
              ReplayPosition currentLast = lastReplayPosition.get();
              if (currentLast instanceof LastReplayPosition)
                  return currentLast.compareTo(replayPosition) >= 0;
              if (currentLast != null && currentLast.compareTo(replayPosition) >= 0)
                  return true;
              if (lastReplayPosition.compareAndSet(currentLast, replayPosition))
                  return true;
          }
      }
docs: decide if this memtable should take the write, or if it should go to the next memtable