[ https://issues.apache.org/jira/browse/CASSANDRA-16378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17459751#comment-17459751 ]
Sam Tunnicliffe commented on CASSANDRA-16378: --------------------------------------------- Apologies for the drive-by comment, but I wonder if rather than a pre-defined set of attributes on the Cassandra side ({{{}APPLICATION_NAME{}}} and {{{}APPLICATION_VERSION{}}}), it might be better to define a single, opaque identifier into which clients can encode whatever info they need to track according to their specific deployment model(s). Basically, I'm suggesting the equivalent of HTTP's {{User-Agent}} header. This may not be _as_ directly queryable via the system table, but it pre-empts and makes explicit what would need to happen for any model that isn't simply "name + version". I would argue that the driver ought to adopt the same approach in future and that in the meantime and for backwards compatibility we compose the identifier string by concatenating {{APPLICATION_NAME}} and {{{}APPLICATION_VERSION{}}}. > Expose application_name and application_version in virtual table > system_views.clients > ------------------------------------------------------------------------------------- > > Key: CASSANDRA-16378 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16378 > Project: Cassandra > Issue Type: Improvement > Components: Feature/Virtual Tables > Reporter: Tibor Repasi > Assignee: Tibor Repasi > Priority: Normal > Labels: AdventCalendar2021, gsoc2021, lhf, mentor > > Recent java-driver's > [com.datastax.oss.driver.api.core.session.SessionBuilder|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html] > respects properties > [ApplicationName|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html#withApplicationName-java.lang.String-] > and > [ApplicationVersion|https://docs.datastax.com/en/drivers/java/4.9/com/datastax/oss/driver/api/core/session/SessionBuilder.html#withApplicationVersion-java.lang.String-]. > It would be helpful to exposed this information via virtual table > {{system_views.clients}} and with {{nodetool clientstats}}. > +Additional information for newcomers:+ > The drivers can send as part of the {{STARTUP MESSAGE}} the > {{APPLICATION_NAME}} and {{APPLICATION_VERSION}} options. To new volatile > fields {{applicationName}} and {{applicationVersion}} need to be added to > {{ClientState}} in a similar way to {{driverName}} and {{driverVersion}}. > The {{APPLICATION_NAME}} and {{APPLICATION_VERSION}} optionsneed to be > retrieved in {{StartupMessage#execute}} and passed to the {{ClientState}}. > The new {{application_name}} and {{application_version}} columns need to be > added to the {{system_views.clients}} represented by the {{ClientsTable}} > class. The data then need to be retrieved from the {{ClientState}} through > {{ConnectedClient}}. > Some unit tests similat to {{SettingsTableTest}} should be added. -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org