[ 
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

Reply via email to