I remember that the memtable uses ConcurrentSkipListMap underneath, and multiple writes/reads can proceed at the same time.
in my Lock implementation on cassandra, I seem to run into cases where 2 clients A and B write into the same row, different columns, on a 1-node cluster but the resulting read results do not seem to make sense: A writes into Column_a and returns (with QUORUM) B writes into Column_b and returns (with QUORUM) A reads entire row , with QUORUM and returns B reads entire row, with QUORUM and returns the problem is that the 3rd line does see the write results of first 2 lines; but the fourth line does not see both write results. Thanks Yang