syncthing/lib/model
Jakob Borg c6334e61aa
all: Support multiple device connections (fixes #141) (#8918)
This adds the ability to have multiple concurrent connections to a single device. This is primarily useful when the network has multiple physical links for aggregated bandwidth. A single connection will never see a higher rate than a single link can give, but multiple connections are load-balanced over multiple links.

It is also incidentally useful for older multi-core CPUs, where bandwidth could be limited by the TLS performance of a single CPU core -- using multiple connections achieves concurrency in the required crypto calculations...

Co-authored-by: Simon Frei <freisim93@gmail.com>
Co-authored-by: tomasz1986 <twilczynski@naver.com>
Co-authored-by: bt90 <btom1990@googlemail.com>
2023-09-06 12:52:01 +02:00
..
mocks all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
testdata all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
blockpullreorderer_test.go all: Remove miscellaneous vestigial code (#7495) 2021-03-17 22:23:12 +01:00
blockpullreorderer.go lib/model: Add support for different puller block ordering (#6587) 2020-05-11 22:44:04 +01:00
debug.go all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
deviceactivity_test.go lib/model: Return index from deviceActivity.leastBusy 2021-11-26 12:07:43 +01:00
deviceactivity.go lib/model: Return index from deviceActivity.leastBusy 2021-11-26 12:07:43 +01:00
devicedownloadstate_test.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
devicedownloadstate.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
doc.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
fakeconns_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folder_recvenc.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_recvonly_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folder_recvonly.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_sendonly.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_sendrecv_test.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
folder_sendrecv_unix.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
folder_sendrecv_windows.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
folder_sendrecv.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folder_summary.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
folder_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
folder.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folderstate.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
indexhandler.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
metrics.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
model_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
model.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
progressemitter_test.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
progressemitter.go all: Refactor the protocol/model interface a bit (ref #8981) (#9007) 2023-07-29 10:24:44 +02:00
queue_test.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
queue.go lib/model: Optimize jobQueue performance and memory use (#8023) 2021-10-29 20:20:46 +02:00
requests_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
sentdownloadstate.go all: Fix various user-facing and non-user-facing typos (#8509) 2022-08-23 15:44:11 +02:00
service_map_test.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
service_map.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
sharedpullerstate_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
sharedpullerstate.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
testos_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
testutils_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
util.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
utils_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00