syncthing/vendor/github.com
Jakob Borg 916ec63af6 cmd/stdiscosrv: New discovery server (fixes #4618)
This is a new revision of the discovery server. Relevant changes and
non-changes:

- Protocol towards clients is unchanged.

- Recommended large scale design is still to be deployed nehind nginx (I
  tested, and it's still a lot faster at terminating TLS).

- Database backend is leveldb again, only. It scales enough, is easy to
  setup, and we don't need any backend to take care of.

- Server supports replication. This is a simple TCP channel - protect it
  with a firewall when deploying over the internet. (We deploy this within
  the same datacenter, and with firewall.) Any incoming client announces
  are sent over the replication channel(s) to other peer discosrvs.
  Incoming replication changes are applied to the database as if they came
  from clients, but without the TLS/certificate overhead.

- Metrics are exposed using the prometheus library, when enabled.

- The database values and replication protocol is protobuf, because JSON
  was quite CPU intensive when I tried that and benchmarked it.

- The "Retry-After" value for failed lookups gets slowly increased from
  a default of 120 seconds, by 5 seconds for each failed lookup,
  independently by each discosrv. This lowers the query load over time for
  clients that are never seen. The Retry-After maxes out at 3600 after a
  couple of weeks of this increase. The number of failed lookups is
  stored in the database, now and then (avoiding making each lookup a
  database put).

All in all this means clients can be pointed towards a cluster using
just multiple A / AAAA records to gain both load sharing and redundancy
(if one is down, clients will talk to the remaining ones).

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4648
2018-01-14 08:52:31 +00:00
..
a8m/mark cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
AudriusButkevicius vendor: Move back to upstream KCP (fixes #4407) 2017-12-27 11:33:12 +00:00
beorn7/perks/quantile cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
bkaradzic/go-lz4 vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
BurntSushi/toml cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
calmh lib/protocol, vendor: Import luhn code directly 2017-09-20 21:34:32 +02:00
ccding/go-stun vendor: Update pfilter and go-stun (fixes #4561) 2017-12-06 21:28:36 +00:00
cheggaaa/pb cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
chmduquesne/rollinghash vendor: Update everything 2017-12-29 11:38:00 +00:00
d4l3k/messagediff vendor: Update everything 2017-12-29 11:38:00 +00:00
dustin/go-humanize cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
edsrzf/mmap-go vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
gernest/wow cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
go-ini/ini cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
gobwas/glob vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
gogo/protobuf cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
golang vendor: Update everything 2017-12-29 11:38:00 +00:00
jackpal/gateway vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
kardianos/osext vendor: Update everything 2017-12-29 11:38:00 +00:00
kballard/go-shellquote all: Convert folders to use filesystem abstraction 2017-08-19 14:36:56 +00:00
klauspost vendor: Update everything 2017-12-29 11:38:00 +00:00
magefile/mage cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
mattn/go-runewidth cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
matttproud/golang_protobuf_extensions/pbutil cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
minio cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
mitchellh/go-homedir cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
onsi vendor: Update everything 2017-12-29 11:38:00 +00:00
oschwald vendor: Update everything 2017-12-29 11:38:00 +00:00
petermattis/goid vendor: Update everything 2017-12-29 11:38:00 +00:00
pkg/errors vendor: Update everything 2017-12-29 11:38:00 +00:00
prometheus cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
rcrowley/go-metrics vendor: Update everything 2017-12-29 11:38:00 +00:00
remyoudompheng/bigfft vendor: Update everything 2017-12-29 11:38:00 +00:00
sasha-s/go-deadlock vendor: Update everything 2017-12-29 11:38:00 +00:00
sirupsen/logrus cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
stathat/go vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
syndtr/goleveldb/leveldb vendor: Update everything 2017-12-29 11:38:00 +00:00
templexxx vendor: Update everything 2017-12-29 11:38:00 +00:00
thejerf/suture vendor: Update everything 2017-12-29 11:38:00 +00:00
tjfoc/gmsm/sm4 vendor: Update everything 2017-12-29 11:38:00 +00:00
vitrun/qart vendor: Mega update all dependencies 2017-04-05 14:34:41 +00:00
xtaci vendor: Update everything 2017-12-29 11:38:00 +00:00
zillode/notify vendor: Update github.com/zillode/notify 2017-12-10 19:42:17 +01:00