syncthing/lib/model
Jakob Borg d1d967f0cf lib/db: Keep folder meta data persistently in db (fixes #4400)
This keeps the data we need about sequence numbers and object counts
persistently in the database. The sizeTracker is expanded into a
metadataTracker than handled multiple folders, and the Counts struct is
made protobuf serializable. It gains a Sequence field to assist in
tracking that as well, and a collection of Counts become a CountsSet
(for serialization purposes).

The initial database scan is also a consistency check of the global
entries. This shouldn't strictly be necessary. Nonetheless I added a
created timestamp to the metadata and set a variable to compare against
that. When the time since the metadata creation is old enough, we drop
the metadata and rebuild from scratch like we used to, while also
consistency checking.

A new environment variable STCHECKDBEVERY can override this interval,
and for example be set to zero to force the check immediately.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4547
LGTM: imsodin
2017-12-14 09:51:17 +00:00
..
testdata lib/model: Temp names from all platforms should be recognized as such 2016-11-30 21:23:24 +00:00
.gitignore mv internal lib 2015-08-09 09:35:26 +02:00
debug.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
deviceactivity_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
deviceactivity.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
devicedownloadstate_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
devicedownloadstate.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
doc.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
folder.go lib/model: Trigger a pull when ignore patterns change 2017-11-20 16:29:36 +00:00
folderscanner.go lib/model: Deduplicate folder loops 2017-09-07 06:17:47 +00:00
folderstate.go lib/model, lib/config: Refactor folder health/error handling (fixes #4445, fixes #4451) 2017-10-24 07:58:55 +00:00
model_test.go lib/db: Keep folder meta data persistently in db (fixes #4400) 2017-12-14 09:51:17 +00:00
model.go lib/config, lib/model: Tweaks to the auto accept feature 2017-12-07 08:33:32 +00:00
progressemitter_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
progressemitter.go all: Correct various typos 2017-02-25 08:12:13 +00:00
queue_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
queue.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
requests_test.go gui, lib/config, lib/model: Support auto-accepting folders (fixes #2299) 2017-12-07 07:08:24 +00:00
rofolder.go lib/model: Add initial noop watch cancel func (fixes #4464) 2017-10-26 11:49:06 +00:00
rwfolder_test.go lib/model: Improve scan scheduling and dir del during pull (fixes #4475 #4476) 2017-12-07 08:42:03 +00:00
rwfolder.go lib/model: Improve scan scheduling and dir del during pull (fixes #4475 #4476) 2017-12-07 08:42:03 +00:00
sentdownloadstate.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
sharedpullerstate_test.go lib/model: Remove dead code (*sharedPullerState).sourceFile 2017-12-12 11:30:47 +01:00
sharedpullerstate.go lib/model: Remove dead code (*sharedPullerState).sourceFile 2017-12-12 11:30:47 +01:00
sorter_test.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
sorter.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
util.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00