syncthing/lib/db
Jakob Borg a992559abc
lib/db: Add hacky way to adjust database parameters (#5889)
This adds a set of magical environment variables that can be used to
tweak the database parameters. It's totally undocumented and not
intended to be a long term or supported thing.

It's ugly, but there is a backstory. I have a couple of large
installations where the database options are inefficient or otherwise
suboptimal (24/7 compaction going on and stuff like that). I don't
*know* the correct database parameters, nor yet the formula or method to
derive them by, so this requires experimentation. Experimentation needs
to happen partly in production, and rolling out new builds for every
tweak isn't practical. This provides override points for all reasonable
values, while not changing anything by default.

Ideally, at the end of such experimentation, we'll know which values are
relevant to change and in what manner, and can provide a more user
friendly knob to do so - or do it automatically based on the database
size.
2019-07-26 22:18:42 +02:00
..
testdata lib/db: Add index to track locally needed files (#4958) 2018-06-02 15:08:32 +02:00
.gitignore Change DB label format (index folders, devices) 2016-01-03 19:32:40 +01:00
benchmark_test.go lib/db: Fix, optimize and extend benchmarks (#5467) 2019-01-19 20:24:44 +01:00
blockmap.go lib/db: Do all update operations on a single item at once (#5441) 2019-01-23 10:22:33 +01:00
blockmap_test.go lib/db: Flush batch based on size and refactor (fixes #5531) (#5536) 2019-02-14 23:15:13 +00:00
concurrency_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
db_test.go lib: Add mtime window when comparing files (#5852) 2019-07-23 21:48:53 +02:00
debug.go lib/db: Fix inconsistency in sequence index (fixes #5149) (#5158) 2018-09-02 20:58:32 +02:00
instance.go lib/db, lib/model: Remove folder info from panics (ref #5839) (#5840) 2019-07-10 10:57:49 +02:00
keyer.go lib/db: Do all update operations on a single item at once (#5441) 2019-01-23 10:22:33 +01:00
keyer_test.go lib/db: Refactor: use a Lowlevel type underneath Instance (ref #5198) (#5212) 2018-10-10 11:34:24 +02:00
lowlevel.go lib/db: Add hacky way to adjust database parameters (#5889) 2019-07-26 22:18:42 +02:00
meta.go lib/db: Various polish (#5471) 2019-01-20 10:24:39 +01:00
meta_test.go lib/db: Fix sequence updating for remote invalid items (#5420) 2019-01-04 20:19:10 +01:00
namespaced.go lib/db: Flush batch based on size and refactor (fixes #5531) (#5536) 2019-02-14 23:15:13 +00:00
namespaced_test.go lib/db: Fix test for Go 1.9's smarter time.Time values 2017-06-28 14:36:04 +02:00
schemaupdater.go lib/db: Flush batch based on size and refactor (fixes #5531) (#5536) 2019-02-14 23:15:13 +00:00
set.go all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
set_test.go lib: Add mtime window when comparing files (#5852) 2019-07-23 21:48:53 +02:00
smallindex.go all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
smallindex_test.go lib/db: Refactor: use a Lowlevel type underneath Instance (ref #5198) (#5212) 2018-10-10 11:34:24 +02:00
structs.go lib/db: Fix iterating sequence index (fixes #5340) (#5462) 2019-01-18 11:34:18 +01:00
structs.pb.go all: Update protobuf package 1.0.0 -> 1.2.0 (#5452) 2019-01-14 11:53:36 +01:00
structs.proto all: Update protobuf package 1.0.0 -> 1.2.0 (#5452) 2019-01-14 11:53:36 +01:00
transactions.go cmd, lib/db: Actually close goleveldb (fixes #5505) (#5671) 2019-05-02 11:15:00 +02:00
util_test.go all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00