Syncthing: Consider changing db dir name and archiving on schema upgrade

Created on 19 May 2020  路  2Comments  路  Source: syncthing/syncthing

Our db folder is called index-v0.14.0.db. The v0.14.0 in itself might be slightly confusing, and since doing backwards incompatible database schema changes, it's definitely not entirely accurate anymore. I think it would make sense on a schema upgrade to copy the index to a new dir, e.g. index-v1.6.db currently (or v1.6.0 for completeness, but there shouldn't be any db changes in patch releases, so the 0 is redundant). And maybe have some retention policy, like keep only one db copy on top of the currently active one.

enhancement needs-triage

Most helpful comment

When we used the version-in-name thing last we didn't have schema versioning in the database. Now we do... There might still be value in archiving a copy to permit downgrades, though. But changing the name every version might be more confusing than it's worth I think, plus an inadvertent downgrade will just starting running with a new, blank database as the expected name no longer exists.

If anything we should maybe just switch to index.leveldb (and then maybe index.badger, or perhaps skip the intermediate step...).

All 2 comments

When we used the version-in-name thing last we didn't have schema versioning in the database. Now we do... There might still be value in archiving a copy to permit downgrades, though. But changing the name every version might be more confusing than it's worth I think, plus an inadvertent downgrade will just starting running with a new, blank database as the expected name no longer exists.

If anything we should maybe just switch to index.leveldb (and then maybe index.badger, or perhaps skip the intermediate step...).

I say no. Fight me.

Was this page helpful?
0 / 5 - 0 ratings