syncthing/lib
Jakob Borg ce65aea0ab
lib/db: Use a more concurrent GC (fixes #7722) (#7750)
This changes the GC mechanism so that the first pass (which reads all
FileInfos to populate bloom filters with block & version hashes) can
happen concurrently with normal database operations.

The big gcMut still exists, and we grab it temporarily to block all
other modifications while we set up the bloom filters. We then release
the lock and let other things happen, with those other things also
updating the bloom filters as required. Once the first phase is done we
again grab the gcMut, knowing that we are the sole modifier of the
database, and do the cleanup.

I also removed the final compaction step.
2021-06-07 10:52:06 +02:00
..
api all: Allow dismissing pending devices / folders without ignoring (fixes #7700) (#7712) 2021-06-07 10:29:24 +02:00
assets lib/assets: Allow assets to remain uncompressed (#6661) 2020-05-25 08:51:27 +02:00
beacon lib/ur: Send unreported failures on shutdown (#7164) 2020-12-22 20:17:14 +01:00
build lib/api: Returns tags in version as list (#7190) 2020-12-10 12:22:09 +01:00
config lib/api, lib/config: Apply defaults before deserializing json (#7690) 2021-06-03 15:09:35 +02:00
connections lib/connections: Reduce default quic redial interval (fixes #7471) (#7672) 2021-05-14 14:26:02 +01:00
db lib/db: Use a more concurrent GC (fixes #7722) (#7750) 2021-06-07 10:52:06 +02:00
dialer lib/dialer: Try dialing without reuse in parallel (fixes #6892) (#6893) 2020-08-18 13:11:12 +02:00
discover all: Regenerate proto (#7696) 2021-05-19 13:30:20 +02:00
events build: List go:generate tools in tools.go (#7599) 2021-05-08 12:52:06 +02:00
fs lib/model: Ensure indexes are only received after checking IDs (ref #7649) (#7689) 2021-06-03 14:58:50 +02:00
ignore all: Remove crypto/md5 (#7493) 2021-03-17 22:22:49 +01:00
locations all: Simplify some method calls (#7499) 2021-03-17 23:12:26 +01:00
logger build: List go:generate tools in tools.go (#7599) 2021-05-08 12:52:06 +02:00
model all: Allow dismissing pending devices / folders without ignoring (fixes #7700) (#7712) 2021-06-07 10:29:24 +02:00
nat all: Refactor preparing configuration (#7127) 2020-11-20 14:21:54 +01:00
osutil lib: Prevent using protocol method with native path (fixes #7557) (#7563) 2021-04-11 15:29:43 +02:00
pmp lib/nat: Make service termination faster (#6777) 2020-06-22 09:01:57 +01:00
protocol all: Regenerate proto (#7696) 2021-05-19 13:30:20 +02:00
rand all: Use crypt/rand through its buffered version, but not in benchmarks (#7420) 2021-03-02 19:17:20 +01:00
rc test, lib/model: Various integration test updates & improvements (#6956) 2020-09-07 09:35:37 +02:00
relay lib/relay, lib/svcutil: Improve service logging (fixes #7580) (#7647) 2021-05-10 22:26:25 +02:00
scanner lib/fs: Ignore normalization differences in case insensitive lookup (fixes #7677) (#7678) 2021-05-17 12:35:03 +02:00
sha256 all: Use crypt/rand through its buffered version, but not in benchmarks (#7420) 2021-03-02 19:17:20 +01:00
signature all: Use crypt/rand through its buffered version, but not in benchmarks (#7420) 2021-03-02 19:17:20 +01:00
stats all: Truncate some timestamps (fixes #7457) (#7459) 2021-03-12 10:35:10 +01:00
stun lib/connections: Update pfilter to pick up bugfix/oob stuff, support OOB connections (fixes #7636) (#7654) 2021-05-11 07:59:56 +02:00
svcutil lib/relay, lib/svcutil: Improve service logging (fixes #7580) (#7647) 2021-05-10 22:26:25 +02:00
sync lib/sync: Cleanly fail instead of panic in tests (#6088) 2019-10-16 10:11:11 +02:00
syncthing lib/suture: Use ServeBackground to start main supervisor (#7626) 2021-05-10 16:50:45 +02:00
testutils lib: Use counterfeiter to mock interfaces in tests (#7375) 2021-03-03 08:53:50 +01:00
tlsutil all: Deprecate TLS 1.2 on sync connections (fixes #7594) (#7598) 2021-04-26 10:04:35 +02:00
upgrade all: Tweak error creation (#6391) 2020-03-03 22:40:00 +01:00
upnp all: Simplify some method calls (#7499) 2021-03-17 23:12:26 +01:00
ur lib/ur: Prevent panic when blocksResult is nil (ref #7495) (#7515) 2021-03-22 15:07:41 +01:00
util Trigger connection loop on config device addition (fixes #7600) (#7604) 2021-04-26 21:13:59 +01:00
versioner all: Simplify some method calls (#7499) 2021-03-17 23:12:26 +01:00
watchaggregator all: Refactor preparing configuration (#7127) 2020-11-20 14:21:54 +01:00
weakhash lib/weakhash: Fix speed reporting in benchmark (#6470) 2020-03-29 17:07:25 +02:00