Proposal for a mechanism for plugging in memtable implementations: https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-11%3A+Pluggable+memtable+implementations
The proposal supports using custom memtable implementations to support development and testing of improved alternatives, but also enables a broader definition of "memtable" to better support more advanced use cases like persistent memory. To this end, memtable implementations are given control over flushing and storing data in the commit log, enabling solutions that implement their own durability mechanisms and live much longer than their classical counterparts. Taken to the extreme, this also enables memtables that never flush (in other words, alternative storage engines) in a minimally-invasive manner. I am curious to hear your thoughts on the proposal. Regards, Branimir