[
https://issues.apache.org/jira/browse/CASSANDRA-13279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15888036#comment-15888036
]
Sylvain Lebresne commented on CASSANDRA-13279:
----------------------------------------------
I'm actually kind of -1 on this. Putting default table settings in a file is
asking for trouble if the file ends up differing on each node. So you'd have to
gossip something to make sure that doesn't happen, but the complexity of that
isn't worth it imo. I also suspect this would likely be annoying code-wise as
we'd probably end up with many places to update for every new setting (arguably
you can avoid this by getting fancy, but that also feels like more complexity
than is worth).
>From the description, I really see 2 different "problems" being raised:
# the fact default settings are only so good but that having to set every
setting on every new table to suit your need can be annoying.
# the argument that table settings would be "somewhat hidden".
On the first point, I agree that having some convenience could be useful,
especially for large installations. I think however than something along the
lines of the "profile" idea that was suggested on CASSANDRA-11408 would be more
flexible (I don't exactly buy the exact syntax on that ticket, but I like the
general idea). In particular, we could very well provide a few sensible
"profiles" by default.
On the second point, I'm not really sure I agree. Table options are described
in the documentation
[here|http://cassandra.apache.org/doc/latest/cql/ddl.html#table-options], and
while that can certainly be improved (patches to the doc are welcome), I don't
think this is particularly hidden. I think we'd be better off improving the
existing doc rather than trying to disperse information in too many places.
> Table default settings file
> ---------------------------
>
> Key: CASSANDRA-13279
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13279
> Project: Cassandra
> Issue Type: Wish
> Components: Configuration
> Reporter: Romain Hardouin
> Priority: Minor
> Labels: config, documentation
>
> Following CASSANDRA-13241 we often see that there is no one-size-fits-all
> value for settings. We can't find a sweet spot for every use cases.
> It's true for settings in cassandra.yaml but as [~brstgt] said for
> {{chunk_length_in_kb}}: "this is somewhat hidden for the average user".
> Many table settings are somewhat hidden for the average user. Some people
> will think RTFM but if a file - say tables.yaml - contains default values for
> table settings, more people would pay attention to them. And of course this
> file could contain useful comments and guidance.
> Example with SSTable compression options:
> {code}
> # General comments about sstable compression
> compression:
> # First of all: explain what is it. We split each SSTable into chunks,
> etc.
> # Explain when users should lower this value (e.g. 4) or when a higher
> value like 64 or 128 are recommended.
> # Explain the trade-off between read latency and off-heap compression
> metadata size.
> chunk_length_in_kb: 16
>
> # List of available compressor: LZ4Compressor, SnappyCompressor, and
> DeflateCompressor
> # Explain trade-offs, some specific use cases (e.g. archives), etc.
> class: 'LZ4Compressor'
>
> # If you want to disable compression by default, uncomment the following
> line
> #enabled: false
> {code}
> So instead of hard coded values we would end up with something like
> TableConfig + TableDescriptor à la Config + DatabaseDescriptor.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)