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

Reply via email to