[
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: [email protected]
For additional commands, e-mail: [email protected]