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

Sam Tunnicliffe commented on CASSANDRA-16378:
---------------------------------------------

Yep, I understand the motivation and how {{StartupMessage}} handles the unknown 
options. Essentially, all I'm saying is that the identifier the client supplies 
here may include more than just the "name" of the app, so why not name it 
accordingly.

For example, if the way you identify your application has 3 elements, like 
{{{}Name{}}}, {{Version}} and {{{}Environment{}}}, you'd probably end up 
encoding multiple items together like:

{{APPLICATION_NAME: someapp/qa, APPLICATION_VERSION: 1.0}}
{{APPLICATION_NAME: someapp/prod, APPLICATION_VERSION: 1.0}}

in which case isn't it more accurate to represent it:

{{APPLICATION_ID: someapp/prod, APPLICATION_VERSION: 1.0}}

It's a pretty minor consideration at the end of the day, but as we have a free 
choice of which name to pick it feels worth raising the question.

Finally, maybe it's too extreme for some tastes, but you could go further and 
combine the app version into the identifier, seeing as that too is completely 
opaque from a Cassandra perspective.

{{APPLICATION_ID: someapp/prod;1.0}}

For this last part though, you would need to do some munging on the server side 
to consume the name/version pairs that some clients will be already sending, so 
maybe it's not worth the effort.

> 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]

Reply via email to