[
https://issues.apache.org/jira/browse/CASSANDRA-7012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14334185#comment-14334185
]
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 active
> --------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-7012
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7012
> Project: Cassandra
> Issue Type: Improvement
> Components: API
> Reporter: Joaquin Casares
> Assignee: Tyler Hobbs
> Labels: datastax_qa
>
> Java-Driver's note on the issue:
> https://github.com/datastax/java-driver/blob/2.1/driver-core/src/main/java/com/datastax/driver/core/Cluster.java#L1087
> 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
(v6.3.4#6332)