cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ariel Weisberg (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-6061) Rewrite TokenMetadata
Date Wed, 11 Nov 2015 17:32:11 GMT


Ariel Weisberg commented on CASSANDRA-6061:

As a start just make it COW so readers can pull a copy and not have it change underneath whiles
they are using it causing NPEs and assertions to fire. Right now it's very error prone and
in CASSANDRA-6061 we have had to go through a couple of iterations to have it not accidentally
access TMD in a racy way.

That doesn't fix everything since any concurrent changes to TMD result in all readers who
have persisted state based on the old world view needing to take corrective action. Maybe
have listeners and instead of getting access to TMD as a global singleton receive updated
references as they are created so subsystems can reference local copies and then on state
transitions take whatever actions are necessary.

Hints for instance might need to drop stale hints (not sure how this is handled now).

> Rewrite TokenMetadata
> ---------------------
>                 Key: CASSANDRA-6061
>                 URL:
>             Project: Cassandra
>          Issue Type: Task
>            Reporter: Jonathan Ellis
>            Priority: Minor
> Feels like this "mostly works" but is generally fragile (see: shuffle).
> Would be good to get a fresh perspective on it and see if we can do better.
> Bonus would be, ability to bootstrap multiple nodes w/o Two Minute Rule.  Probably would
involve using LWT on pending ranges state.

This message was sent by Atlassian JIRA

View raw message