



        I have a Node 
        
        this Node is hosting a set of Token Ranges
        which in turn host records for these Partition Keys
        
        and an Appl sends a write (insert/update/delete) command
        each write operation may reference a sub-set of columns only,
        so each write operation will create a timestamp per column
        being changed
        
        to this Node...
        
        Each node has:
        
        1) Disk space for the data (records) <- cassandra.yaml
        2) Disk space for the Transaction Log (this is NOT appl transactions)  <- cassandra.yaml
        3) Memory for managing the records (memtable) <- JVM options when starting Cassandra
        
        
        the Write Path:
        
        1) put the record into memtable (memory)
        2) add the record to the Transaction (Commit) log
             the commit log is "Write to End", very fast
        3) respond back to the coordinator, action done
        
        
        during the write operation the commit log is ALWAYS add to the end (fast)
        the memtable is sorted (in memory) by clustering column(s)
        
        
        the memtable is limited in size, and at some point the memtable
        needs to be flushed to disk (the data storage location)
        this is no effecting the responds time of the appl
        
        the entrie memtable to move to dish at once, the disk space is
        name a SSTable (Stored String Table) and is immutable (it will never change)
        
        and a new memtable is started, and the commit log is mark w/ a commit point
        (do not recover past this point)
        
        and we start over...
        
        
        over time the data storage disk will have a number of SSTables in place
        
        
        
