[ 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