You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Branimir Lambov (Jira)" <ji...@apache.org> on 2022/02/10 11:03:00 UTC

[jira] [Commented] (CASSANDRA-17034) CEP-11: Memtable API implementation

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

Branimir Lambov commented on CASSANDRA-17034:
---------------------------------------------

The [CEP-19 discussion|https://lists.apache.org/thread/fdvf1wmxwnv5jod59jznbnql23nqosty] raised some good points on the memtable configuration, paraphrased below:
 - Per-node configuration: this is already supported in the form of memtable "templates", which are specified in the yaml and can be referenced by the schema.
 - Priority of schema over yaml: it is a potential operational problem that the schema can specify a configuration that is not controllable per node.
 - Default templates: it may be a good idea to have multiple default templates that can be overridden if necessary.
 - Template fallback: with multiple templates, let the yaml have the option of remapping one template to another.

I personally prefer to not complicate the solution too much, and am leaning towards implementing the following:
 - Renaming "memtable_template" to "memtable_configuration".
 - A "default" configuration is always defined and is used if the schema does not specify one.
 - The default configuration can be overridden in the yaml.
 - The yaml can specify any number of memtable configurations, and they can inherit properties (e.g. {{{}extends: default, shards: 32{}}}).
 - The table schema can only specify the memtable configuration to use and is not allowed to modify its properties.

Let's continue the discussion here.

> 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.20.1#820001)

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