You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Peter Schuller (Created) (JIRA)" <ji...@apache.org> on 2012/02/02 00:47:53 UTC

[jira] [Created] (CASSANDRA-3834) make locator pluggable/abstract

make locator pluggable/abstract
-------------------------------

                 Key: CASSANDRA-3834
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
             Project: Cassandra
          Issue Type: New Feature
          Components: Core
            Reporter: Peter Schuller


Make the locator pluggable, such that we can use something other than
gissip to discover ring topology.

This is in part for CASSANDRA-3833, but is also useful because we want
something simpler and more reliable than gossip on production
clusters. At minimum we must be able to hit our nodes with a clue bat
in emergencies ("no this node is NOT in state Normal damn it"), even if
we were to normally rely on gossip.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-3834) make locator pluggable/abstract

Posted by "Peter Schuller (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13204212#comment-13204212 ] 

Peter Schuller commented on CASSANDRA-3834:
-------------------------------------------

I am talking about everything that Gossip does. Having an abstraction that provides ring topology and remove gossip specific assumptions in the code outside of the gossiper. It's fairly well isolated, but not entirely.

CASSANDRA-3833 is really the bigger change because it fundamentally changes the abstraction operated upon. The current abstraction is very tied to one particular nature of gossip - that nodes change states individually rather than in aggregate. The arbitrary topology ticket wants to address that, and this ticket is intended to be "prep work" that is legitimate in it's own right.
                
> make locator pluggable/abstract
> -------------------------------
>
>                 Key: CASSANDRA-3834
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> Make the locator pluggable, such that we can use something other than
> gissip to discover ring topology.
> This is in part for CASSANDRA-3833, but is also useful because we want
> something simpler and more reliable than gossip on production
> clusters. At minimum we must be able to hit our nodes with a clue bat
> in emergencies ("no this node is NOT in state Normal damn it"), even if
> we were to normally rely on gossip.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-3834) make locator pluggable/abstract

Posted by "Peter Schuller (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13204025#comment-13204025 ] 

Peter Schuller commented on CASSANDRA-3834:
-------------------------------------------

Something I'd like to include in this ticket is to make the behavior on start-up a bit different. Part of making the locator abstract will be moving things like waiting for RING_DELAY into the locator (not directly in e.g. StorageService). But I'd like to also add support for not listening to thrift until one has deemed oneself to be "up to speed" with the cluster state. It's a long standing issue that on start-up, a node just starts listening without any kind of delay or synchronization with gossip (I am talking normal start-up here, not bootstraps). This can can a flurry of {{Unavailable}} exceptions when a node starts up in a cluster.

Because the impact is only {{Unavailable}}, as opposed to actual data integrity issues (since if everything works correctly we'll never route requests to nodes for which we don't have valid gossip information), we need not wait for RING_DELAY. But we can have a simple heuristic that minimizes the chance of this being a problem. For example (not super-throught through, but a stab):

* Wait for *at least* one successful gossip round to a node *or* some amount of seconds (say 10?).
* Then, whatever ring state we are aware of, wait for *at least* a couple of seconds.
* Maybe wait an additional period up to say 10 seconds if less than a certain percentage of nodes in the cluster is up.

An alternative is to do something maximally simple like "always just wait 10 seconds", but that could grow annoying in the common cases where 0-2 seconds is actually enough.

                
> make locator pluggable/abstract
> -------------------------------
>
>                 Key: CASSANDRA-3834
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> Make the locator pluggable, such that we can use something other than
> gissip to discover ring topology.
> This is in part for CASSANDRA-3833, but is also useful because we want
> something simpler and more reliable than gossip on production
> clusters. At minimum we must be able to hit our nodes with a clue bat
> in emergencies ("no this node is NOT in state Normal damn it"), even if
> we were to normally rely on gossip.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-3834) make locator pluggable/abstract

Posted by "Brandon Williams (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13204080#comment-13204080 ] 

Brandon Williams commented on CASSANDRA-3834:
---------------------------------------------

Could you clarify which class(es) 'locator' refers to here?  Everything in o.a.c.locator looks pluggable already.
                
> make locator pluggable/abstract
> -------------------------------
>
>                 Key: CASSANDRA-3834
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> Make the locator pluggable, such that we can use something other than
> gissip to discover ring topology.
> This is in part for CASSANDRA-3833, but is also useful because we want
> something simpler and more reliable than gossip on production
> clusters. At minimum we must be able to hit our nodes with a clue bat
> in emergencies ("no this node is NOT in state Normal damn it"), even if
> we were to normally rely on gossip.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (CASSANDRA-3834) make locator pluggable/abstract

Posted by "Peter Schuller (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13204218#comment-13204218 ] 

Peter Schuller commented on CASSANDRA-3834:
-------------------------------------------

I originally talked about this as "making gossiper pluggable" but that makes no sense because the word gossiper is specified to, well, gossip. I used the word "locator" here because it seemed the most near/obvious given the package name. I am definitely open to other naming :)
                
> make locator pluggable/abstract
> -------------------------------
>
>                 Key: CASSANDRA-3834
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> Make the locator pluggable, such that we can use something other than
> gissip to discover ring topology.
> This is in part for CASSANDRA-3833, but is also useful because we want
> something simpler and more reliable than gossip on production
> clusters. At minimum we must be able to hit our nodes with a clue bat
> in emergencies ("no this node is NOT in state Normal damn it"), even if
> we were to normally rely on gossip.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (CASSANDRA-3834) make locator pluggable/abstract

Posted by "Peter Schuller (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Peter Schuller reassigned CASSANDRA-3834:
-----------------------------------------

    Assignee: Peter Schuller
    
> make locator pluggable/abstract
> -------------------------------
>
>                 Key: CASSANDRA-3834
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3834
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Peter Schuller
>
> Make the locator pluggable, such that we can use something other than
> gissip to discover ring topology.
> This is in part for CASSANDRA-3833, but is also useful because we want
> something simpler and more reliable than gossip on production
> clusters. At minimum we must be able to hit our nodes with a clue bat
> in emergencies ("no this node is NOT in state Normal damn it"), even if
> we were to normally rely on gossip.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira