sankalp kohli created CASSANDRA-4784:
----------------------------------------
Summary: Create separate sstables for each token range handled by
a node
Key: CASSANDRA-4784
URL: https://issues.apache.org/jira/browse/CASSANDRA-4784
Project: Cassandra
Issue Type: Improvement
Components: Core
Reporter: sankalp kohli
Priority: Minor
Currently, each sstable has data for all the ranges that node is handling. If
we change that and rather have separate sstables for each range that node is
handling, it can lead to some improvements.
Improvements
1) Node rebuild will be very fast as sstables can be directly copied over to
the bootstrapping node. It will minimize any application level logic. We can
directly use Linux native methods to transfer sstables without using CPU and
putting less pressure on the serving node. I think in theory it will be the
fastest way to transfer data.
2) Backup can only transfer sstables for a node which belong to its primary
keyrange.
3) ETL process can only copy one replica of data and will be much faster.
Changes:
We can split the writes into multiple memtables for each range it is handling.
The sstables being flushed from these can have details of which range of data
it is handling.
There will be no change I think for any reads as they work with interleaved
data anyway. But may be we can improve there as well?
Complexities:
The change does not look very complicated. I am not taking into account how it
will work when ranges are being changed for nodes.
Vnodes might make this work more complicated. We can also have a bit on each
sstable which says whether it is primary data or not.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira