Translogs settings globally


After a while I’ve found that the translogs are filling up free disk space, and eventually the disk.watermark.low/high gets triggered.
I see the index.translog.flush_threshold_size in the crate.yml file, and in the description it states:

In crate.yml:

You can set a number of options (such as replica options, mapping
or analyzer definitions, translog settings, …) for tables globally,
in this file.

But when I do that, I get the following exception on startup:

[2019-07-22T11:44:02,615][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [Aiguille du Fruit] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: node settings must not contain any index level settings
at org.elasticsearch.bootstrap.StartupExceptionProxy.<init>( ~[crate-app.jar:3.3.4]
at io.crate.bootstrap.CrateDB.init( ~[crate-app.jar:3.3.4]
at io.crate.bootstrap.CrateDB.execute( ~[crate-app.jar:3.3.4]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute( ~[crate-app.jar:3.3.4]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling( ~[elasticsearch-cli-6.5.1.jar:3.3.4]
at org.elasticsearch.cli.Command.main( ~[elasticsearch-cli-6.5.1.jar:3.3.4]
at io.crate.bootstrap.CrateDB.main( ~[crate-app.jar:3.3.4]
at io.crate.bootstrap.CrateDB.main( ~[crate-app.jar:3.3.4]
Caused by: java.lang.IllegalArgumentException: node settings must not contain any index level settings
at org.elasticsearch.common.settings.SettingsModule.<init>( ~[crate-app.jar:3.3.4]
at org.elasticsearch.node.Node.<init>( ~[crate-app.jar:3.3.4]
at io.crate.node.CrateNode.<init>( ~[crate-app.jar:3.3.4]
at org.elasticsearch.bootstrap.BootstrapProxy$1.<init>( ~[crate-app.jar:3.3.4]
at org.elasticsearch.bootstrap.BootstrapProxy.setup( ~[crate-app.jar:3.3.4]
at org.elasticsearch.bootstrap.BootstrapProxy.init( ~[crate-app.jar:3.3.4]
at io.crate.bootstrap.CrateDB.init( ~[crate-app.jar:3.3.4]
... 6 more

Ideally I wouldn’t want to have to change my “CREATE TABLE” scripts, so how can I set the translog limitations globally?


Since CrateDB 2.0.0, it is no longer possible to set generic table properties via crate.yml or CLI arguments. Each property must be set on each concrete table using CREATE TABLE or ALTER TABLE commands.
Looks like we missed to remove these lines from the default crate.yml, we’ll follow up on this, thanks for mentioning!


One more question plz, does the translog setting also limit the gc.log?
If not, is there a way to limit those too?


Hi, apologies this answer comes in a bit late, but I just realise this question was unanswered and someone else could come across it in the future.
You can control GC logging with environment variables, take a look at Logging — CrateDB: Reference for details