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

Reply via email to