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

Blake Eggleston commented on CASSANDRA-19009:
---------------------------------------------

With the exception of the schema migration I ask about below, I've pushed up a 
commit that should address all comments.

 
{quote}Add reject to ReconfigureAccordFastPath if there are no accord-enabled 
keyspaces, so we do not populate a log with unnecessary transformations
{quote}
Nodes no longer report availability changes for peers they don't co-replicate 
ranges with.
{quote}Add debounce to ReconfigureAccordFastPath, which would allow updating 
fast path exclusions only once per X amount of time. Maybe we can hold some 
sort of
{quote}
Now debounced in 2 spots. First, we wait a few seconds after receiving an 
alive/dead event, and only report if we haven't received another event for the 
same node in the meantime.  We also reject updates that are superseded by more 
recently applied updates, so we don't mark the same node unavailable 3 times in 
a row.
{quote}we probably need to create a migration process, since right now 
fast_path is simply added to SchemaKeyspace, but unfortunately we will have to 
do it through schema evolution, since we can not assume that all clusters will 
be fresh. Even if adding a field to a local table works out of the box, we 
should be careful because using this column will preclude downgrades.
{quote}
So my understanding is that TCM is effectively the source of truth for schema. 
Could this be safely achieved by only storing fast path info in the tcm schema? 
{quote}We need a garbage collection process for nodes that are excluded from 
fast path, too. Right now, we would add a node to the list, and this is more or 
less it, but the node might get permanently decomissioned, and we will carry it 
around in this list as well. I think decomission (probably FinishLeave), or 
even some earlier step, should make sure the node is not present in this list. 
Maybe we should even add an assert that when the node is unregistered, it is 
not present here, eihter.
{quote}
Updated so removing a node from the directory will automatically remove it from 
the fast path config

> CEP-15: (C*/Accord)  Schema based fast path reconfiguration
> -----------------------------------------------------------
>
>                 Key: CASSANDRA-19009
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19009
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Accord
>            Reporter: Blake Eggleston
>            Assignee: Blake Eggleston
>            Priority: Normal
>             Fix For: 5.0.x
>
>
> This adds availability aware accord fast path reconfiguration, as well as 
> user configurable fast path settings, which are set at the keyspace level and 
> (optionally) at the table level for increased granularity.
> The major parts are:
> *Add availability information to cluster metadata*
> Accord topology in C* is not stored in cluster metadata, but is meant to 
> calculated deterministically from cluster metadata state at a given epoch. 
> This adds the availability data, as well as the failure detector / gossip 
> listener and state change deduplication to CMS.
> *Move C* accord keys/topology from keyspace prefixes to tableid prefixes*
> To support per-table fast path settings, topologies and keys need to include 
> the table id. Since accord topologies could begin to consume a lot of memory 
> in clusters with a lot of nodes and tables, topology generation has been 
> updated to reuse previously allocated shards / shard parts where possible, 
> which will only increase heap sizes when things actually change.
> *Make fast path settings configurable via schema*
> There are 2.5 strategies: Simple, Parameterized, and InheritKeyspaceSettings. 
> Simple will use as many available nodes as possible for the fast path 
> electorate, this is the default for the keyspace fast path strategy. 
> Parameterized allows you to set a target size, and preferred datacenters for 
> the FP electorate. InheritKeyspace tells topology generation to just use the 
> keyspace fast path settings, and is the default for the table fast path 
> strategy.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to