syncthing/vendor/github.com/gogo/protobuf/test
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
..
asymetric-issue125 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
casttype cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
castvalue cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
combos cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
custom cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
custom-dash-type vendor: Update github.com/gogo/protobuf, keeping all files 2017-06-14 05:24:09 +02:00
custombytesnonstruct cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
dashfilename cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
data cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
defaultconflict cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
embedconflict cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
empty-issue70 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
enumcustomname cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
enumdecl cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
enumdecl_all cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
enumprefix cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
enumstringer cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
example cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
filedotname cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
fuzztests cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
group cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
importdedup cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
importduplicate cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
indeximport-issue72 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
int64support cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue8 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue34 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue42order cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue260 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue261 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue262 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue270 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue312 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue322 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
issue330 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
jsonpb-gogo cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
mapdefaults cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
mapsproto2 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
mixbench cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
moredefaults cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
nopackage cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
oneof cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
oneof3 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
oneofembed cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
packed cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
proto3extension cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
protosize cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
registration cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
required cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
sizerconflict cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
sizeunderscore cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
stdtypes cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
tags cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
theproto3 cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
typedecl cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
typedecl_all cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
typedeclimport cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
types cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
unmarshalmerge cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
unrecognized cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
unrecognizedgroup cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
.gitignore cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
bug_test.go cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
extension_test.go cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
Makefile cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
t.go vendor: Update github.com/gogo/protobuf, keeping all files 2017-06-14 05:24:09 +02:00
thetest.pb.go vendor: Update everything 2017-12-29 11:38:00 +00:00
thetest.proto cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
thetestpb_test.go cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
uuid_test.go cmd/stdiscosrv: New discovery server (fixes #4618) 2018-01-14 08:52:31 +00:00
uuid.go vendor: Update github.com/gogo/protobuf, keeping all files 2017-06-14 05:24:09 +02:00