[ 
https://issues.apache.org/jira/browse/CASSANDRA-17034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17436054#comment-17436054
 ] 

Branimir Lambov edited comment on CASSANDRA-17034 at 10/29/21, 4:17 PM:
------------------------------------------------------------------------

Patch uploaded here: 
[branch|https://github.com/blambov/cassandra/tree/CASSANDRA-17034] [pull 
request|https://github.com/apache/cassandra/pull/1295]

For reviewers it will be better to look at the individual commits. The first 
one is sizeable but trivial, adding the flush reason to all places that request 
a flush. The second is the bulk of the work, which splits {{Memtable}} into an 
interface and hierarchy of classes that add pieces of memtable functionality, 
ending in {{SkipListMemtable}} which is the current implementation; flushing 
functionality is moved outside of {{ColumnFamilyStore}}, and new functionality 
to write temporary sstables for streaming from long-lived memtables is added. 
The rest of the commits add a mechanism for providing shard boundaries that 
split the owned space equally, and a basic common interface for reading 
memtables and sstables.

Usages of the API, i.e. alternative memtable implementations, will be provided 
soon.


was (Author: blambov):
Patch uploaded here: 
[branch|https://github.com/blambov/cassandra/tree/CASSANDRA-17034] [pull 
request|https://github.com/apache/cassandra/pull/1295]

For reviewers it will be better to look at the individual commits. The first 
one is sizeable but trivial, adding the flush reason to all places that request 
a flush. The second is the bulk of the work, which splits {{Memtable}} into an 
interface and hierarchy of classes that add pieces of memtable functionality, 
ending in {{SkipListMemtable}} which is the current implementation. The rest of 
the commits add a mechanism for providing shard boundaries that split the owned 
space equally, and a basic common interface for reading memtables and sstables.

> CEP-11: Memtable API implementation
> -----------------------------------
>
>                 Key: CASSANDRA-17034
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17034
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/Memtable
>            Reporter: Branimir Lambov
>            Assignee: Branimir Lambov
>            Priority: Normal
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Pluggable memtable API as described in 
> [CEP-11|https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-11%3A+Pluggable+memtable+implementations].
>  
> Initial version is already available in [this 
> branch|https://github.com/datastax/cassandra/tree/memtable-api], and needs to 
> be updated to the changes in trunk. Two additional features suggested by CEP 
> reviewers are also to be implemented:
>  * Sharding support: extending the memtable owner interface to supply 
> suitable shard boundaries that split the owned token space and are in 
> agreement with disk boundaries.
>  * Shared read API with sstables: defining a common interface for reading 
> partitions from memtables and sstables; this is to include filters to avoid 
> unnecessary copying.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to