[ 
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)

Reply via email to