[ 
https://issues.apache.org/jira/browse/CASSJAVA-92?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17944601#comment-17944601
 ] 

Bret McGuire commented on CASSJAVA-92:
--------------------------------------

So... I have some questions.  My apologies to [~bschoeni] who pinged me about 
this initially... I prolly should've taken a deeper look at the time. :(

 

The local DC requirement in the 4.x driver is entirely driven by the default 
LBP the driver uses; node distance is used for a few computations there.  This 
has several ramifications that I think we need to consider when thinking about 
how to implement this functionality.

 
 # The local datacenter only has meaning if the default LBP is actually used; 
otherwise it's basically ignored.  It is certainly true that the use of the 
default LBP is by far the most common case for Java driver deployments (the LBP 
was specifically designed to make it desirable to use in nearly all cases) but 
there's no guarantee that a given install is using that LBP.  Should we also 
report whether this LBP is in use or perhaps otherwise indicate to the user 
when it's _not_ in use so that they're aware the values we're reporting to them 
don't mean anything?
 # Depending on the LBP the driver actually uses it's entirely possible there 
will be _no_ local DC specified.  Do we know how to display that value to the 
user?  Will our implementation handle that case?
 # The Java driver includes a notion of [execution 
profiles|https://github.com/apache/cassandra-java-driver/tree/4.x/manual/core/configuration#execution-profiles],
 effectively overrides for configuration values that can be applied to certain 
operations.  The execution profiles can include overrides for local 
datacenter... in fact the driver creates a set of LBPs for each execution 
profile it finds in the HOCON config.  How do we represent _this_ to the 
nodetool output?  We have options here: we could provide a list of all possible 
local DCs from the client so that we can display everything.  We could also 
provide two distinct entries, one for the default execution profile (which will 
be most interesting to admins) and another which shows any additional local DCs 
defined in profiles... perhaps we can include these in a parenthesized list or 
something to make admins aware that a given connection might see requests from 
other DCs.

 

I don't know that any of these points are show-stoppers... but they do seem 
like things we should at least talk about.

> Add Local DC to driver connection info and provide visibility with nodetool 
> clientstats
> ---------------------------------------------------------------------------------------
>
>                 Key: CASSJAVA-92
>                 URL: https://issues.apache.org/jira/browse/CASSJAVA-92
>             Project: Apache Cassandra Java driver
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Brad Schoening
>            Assignee: Lukasz Antoniak
>            Priority: Normal
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When a client application connects to Cassandra using one of the drivers, it 
> specifies a local DC now. If the server is aware of the local DC specified, 
> this would be very useful to include in {_}nodetool clientstats{_}.
> We often have clusters running disaster recovery scenarios and they'll turn 
> off NTR on a DC. But they do not always understand what DC's are being used 
> as local DC if they have dozens of applications connecting from different 
> teams. In a brown-out scenario, this would also be useful to identify the 
> applications connecting to a degraded datacenter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to