cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7012) Expose node status through the system tables, especially after the native protocol is active
Date Tue, 24 Feb 2015 00:59:12 GMT


Sylvain Lebresne commented on CASSANDRA-7012:

bq. how much that practically improve the driver's handling of network partitions

Not entirely sure either, but I do think we should have a solution for that problem at some
point, and that's still the best option I can think of for that. That said, I can agree that
it's a pretty specific edge case with possibly not so much practical consequences (the fact
that we haven't had much complain about this problem so far does suggest it at least).

bq. I think such a table should probably be a virtual table

I'm not sure really. Meaning that imo the only sensible place to put those is in the existing
{{sytem.local}} and {{system.peers}} table, and creating a specific table for this feels unecessary
(but I could agree with saying that in the future we might want to use virtual table for {{local}}
and {{peers}}).

I personally think adding a simple "state" column to those table should be pretty easy, and
I think it's a nice to have if only as a way to expose that information to users without requiring
them to use JMX. For instance, drivers currently retrieve the lists of nodes at startup, but
they have no clue on the node actual status and having it would actually be useful (typically,
the java driver currently expose a Host.isUp() method, and for nodes to which the driver doesn't
connect, that information is currently potentially totally wrong. It's potential wrongness
is documented by the driver, but having it less wrong wouldn't hurt). Anyway, I think it's
low hanging fruit and do would like to see that solve at some point (though arguably I haven't
found it pressing enough to do it myself).

> Expose node status through the system tables, especially after the native protocol is
> --------------------------------------------------------------------------------------------
>                 Key: CASSANDRA-7012
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API
>            Reporter: Joaquin Casares
>            Assignee: Tyler Hobbs
>              Labels: datastax_qa
> Java-Driver's note on the issue:
> What the tests for the drivers (Java, Python, C#, etc..) see is a need for sleeps to
cover the race conditions between when isUp() returns true and the nodes are actually ready
to be accessed.
> Could we instead, at the very end of the startup process when the native protocol is
up and active, have the system tables be written to denote that the node is now UP and active?
> If writing to the system tables is not the best idea, could we figure out another solution
to get rid of this race condition, thereby simplifying the testing of the drivers and removing
test cases riddled with sleeps of up to 40 seconds?

This message was sent by Atlassian JIRA

View raw message