On Fri, Aug 24, 2012 at 3:39 PM, Eric Evans <eev...@acunu.com> wrote:
> On Fri, Aug 24, 2012 at 11:27 AM, Jonathan Ellis <jbel...@gmail.com> wrote:
>> On Fri, Aug 24, 2012 at 11:23 AM, Eric Evans <eev...@acunu.com> wrote:
>>> Actually, now that I think about it, I'd probably drop the entire
>>> notion of a "coordinator", and write the respective entiries into a
>>> column family in the system keyspaces.  Each system could then work
>>> through their respective queue of relocations at their own pace.
>>
>> Sounds reasonable.
>
> OK, then unless someone steps forward with a better idea, I'll proceed
> with this approach.

I've updated the ticket[1] with a link to a patch[2] that implements
what I was thinking here.

Each node implements a scheduler that periodically looks in a system
table for token ranges that should be relocated to it.  As a safety
measure, it will skip new transfers if the actual number of tokens
exceeds num_tokens by 10% or more (giving slower nodes a chance to
catch up, if needed).  The periodic scheduler can be enabled and
disabled using JMX.

What remains is to create the administrative tool, something to
calculate the token moves and populate the tables with the respective
entries.

Any thoughts on this?  Should this be something baked into nodetool,
or a separate utility?  Can we add the entries directly, or should
this be done via JMX?

Also, do we have an exact date for the freeze yet?  I assume I have at
least until Sylvain returns from holiday. :)

Thoughts, comments, ideas?

[1]: https://issues.apache.org/jira/browse/CASSANDRA-4443
[2]: 
https://github.com/acunu/cassandra/compare/top-bases/p/4443/050_process_queued_xfers...p/4443/050_process_queued_xfers.diff

-- 
Eric Evans
Acunu | http://www.acunu.com | @acunu

Reply via email to