[
https://issues.apache.org/jira/browse/CASSANDRA-18441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17711539#comment-17711539
]
Caleb Rackliffe commented on CASSANDRA-18441:
---------------------------------------------
After reading the discussion to this point and rolling it over in my mind, I
think I've landed on the following:
1.) Let's mimic [what Lucene
does|https://opensourceconnections.com/blog/2013/06/05/build-your-own-lucene-codec/]
for its {{Codec}} API. In other words, make SSTable formats identifiable by
name and name only via the {{ServiceLoader}} framework, possibly with the
Google {{AutoService}} annotation [to make things a bit
cleaner|https://pedrorijo.com/blog/java-service-loader/].
2.) Define a primary SSTable format using the above name via both YAML and
system property (w/ equivalent naming structure). This could be
{{default_sstable_format}} or {{primary_sstable_format}}...or something else,
as long as we feel like it best connotes the fact that it's the format we use
for ongoing writes.
3.) Specify overrides for existing SSTable format parameters (ex.
{{row_index_granularity}}) via either YAML or system properties (w/ equivalent
naming structure).
(My understanding is 2 and 3 should be possible via
{{cassandra.config.allow_system_properties}}, although I would also be
perfectly fine if we left all of this out of the YAML completely and supported
only system properties to start.)
In any case, doing 1-3 would mean we could potentially avoid interaction w/ the
YAML completely.
> Improvements to SSTable format configuration
> --------------------------------------------
>
> Key: CASSANDRA-18441
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18441
> Project: Cassandra
> Issue Type: Improvement
> Components: Local/SSTable
> Reporter: Branimir Lambov
> Assignee: Jacek Lewandowski
> Priority: Normal
> Fix For: 5.x
>
>
> CEP-17 and CASSANDRA-17056 abstracted some interfaces for SSTable format
> implementations and defined a method of plugging in specific configurations.
> This method is brittle and asks users to specify format identifiers whose
> configuration does not provide value but can be the source of conflicts and
> problems. On the other hand it makes important choices non-obvious, as the
> selection of format to write is given by the order of configured interfaces.
> An improved specification mechanism needs to be put in place before Cassandra
> 5 is released.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]