cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-13279) Table default settings file
Date Tue, 28 Feb 2017 13:47:45 GMT


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

View raw message