open-consul/agent
Pierre Souchay b0fc91a1d2 [Performance On Large clusters] Reduce updates on large services (#4720)
* [Performance On Large clusters] Checks do update services/nodes only when really modified to avoid too many updates on very large clusters

In a large cluster, when having a few thousands of nodes, the anti-entropy
mechanism performs lots of changes (several per seconds) while
there is no real change. This patch wants to improve this in order
to increase Consul scalability when using many blocking requests on
health for instance.

* [Performance for large clusters] Only updates index of service if service is really modified

* [Performance for large clusters] Only updates index of nodes if node is really modified

* Added comments / ensure IsSame() has clear semantics

* Avoid having modified boolean, return nil directly if stutures are Same

* Fixed unstable unit tests TestLeader_ChangeServerID

* Rewrite TestNode_IsSame() for better readability as suggested by @banks

* Rename ServiceNode.IsSame() into IsSameService() + added unit tests

* Do not duplicate TestStructs_ServiceNode_Conversions() and increase test coverage of IsSameService

* Clearer documentation in IsSameService

* Take into account ServiceProxy into ServiceNode.IsSameService()

* Fixed IsSameService() with all new structures
2018-10-11 12:42:39 +01:00
..
ae Add -sidecar-for and new /agent/service/:service_id endpoint (#4691) 2018-10-10 16:55:34 +01:00
cache merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
cache-types merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
checks Add -sidecar-for and new /agent/service/:service_id endpoint (#4691) 2018-10-10 16:55:34 +01:00
config Added SOA configuration for DNS settings. (#4714) 2018-10-10 15:50:56 -04:00
connect xDS Server Implementation (#4731) 2018-10-10 16:55:34 +01:00
consul [Performance On Large clusters] Reduce updates on large services (#4720) 2018-10-11 12:42:39 +01:00
exec fix go vet issue 2017-10-25 19:30:35 +02:00
local Proxy Config Manager (#4729) 2018-10-10 16:55:34 +01:00
metadata do not bootstrap with non voters 2018-09-19 17:41:36 -07:00
mock agent: replace docker check 2017-07-18 20:24:38 +02:00
pool Makes RPC handling more robust when rolling servers. (#3561) 2017-10-10 15:19:50 -07:00
proxycfg merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
proxyprocess Add -sidecar-for and new /agent/service/:service_id endpoint (#4691) 2018-10-10 16:55:34 +01:00
router Remove unnecessary nil checks 2018-03-27 10:59:42 -05:00
structs [Performance On Large clusters] Reduce updates on large services (#4720) 2018-10-11 12:42:39 +01:00
systemd agent: notify systemd after JoinLAN (#2121) 2017-06-21 06:43:55 +02:00
token agent: add primary_datacenter and connect replication config options 2018-10-10 12:17:59 -07:00
xds merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
acl.go Add SidecarService Syntax sugar to Service Definition (#4686) 2018-10-10 16:55:34 +01:00
acl_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
acl_endpoint_test.go BUGFIX: Unit test relying on WaitForLeader() did not work due to wrong test (#4472) 2018-08-06 19:46:09 -04:00
acl_test.go BUGFIX: Unit test relying on WaitForLeader() did not work due to wrong test (#4472) 2018-08-06 19:46:09 -04:00
agent.go [WIP] Initial draft of Sidecar Service and Managed Proxy deprecation docs (#4752) 2018-10-11 10:44:42 +01:00
agent_endpoint.go agent: add primary_datacenter and connect replication config options 2018-10-10 12:17:59 -07:00
agent_endpoint_test.go Fix up tests broken by master merge; add proxy tests to services command (and fix it!); actually run the proxycfg.Manager 2018-10-10 16:55:34 +01:00
agent_test.go Add SidecarService Syntax sugar to Service Definition (#4686) 2018-10-10 16:55:34 +01:00
bindata_assetfs.go Release v1.2.3 2018-09-13 15:22:25 +00:00
blacklist.go Adds the ability to blacklist specific HTTP endpoints. (#3252) 2017-07-10 13:51:25 -07:00
blacklist_test.go Adds the ability to blacklist specific HTTP endpoints. (#3252) 2017-07-10 13:51:25 -07:00
catalog_endpoint.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
catalog_endpoint_test.go Add Proxy Upstreams to Service Definition (#4639) 2018-10-10 16:55:34 +01:00
check.go Decouple the code that executes checks from the agent 2017-10-25 11:18:07 +02:00
config.go Fixes API client for ScriptArgs and updates documentation. (#3589) 2017-10-18 11:28:39 -07:00
connect_auth.go Connect Envoy Command (#4735) 2018-10-10 16:55:34 +01:00
connect_ca_endpoint.go Fix CA pruning when CA config uses string durations. (#4669) 2018-09-13 15:43:00 +01:00
connect_ca_endpoint_test.go Fix more unstable tests in agent and command 2018-09-12 14:49:27 +01:00
coordinate_endpoint.go Merge pull request #3885 from eddsteel/support-options-requests 2018-03-16 09:20:16 -05:00
coordinate_endpoint_test.go Fix more unstable tests in agent and command 2018-09-12 14:49:27 +01:00
dns.go Added SOA configuration for DNS settings. (#4714) 2018-10-10 15:50:56 -04:00
dns_test.go Added SOA configuration for DNS settings. (#4714) 2018-10-10 15:50:56 -04:00
enterprise_delegate_oss.go Allow for easy enterprise/oss coexistence 2018-05-24 10:36:42 -04:00
event_endpoint.go Fixes memory leak when blocking on /event/list (#4482) 2018-08-02 14:54:48 +01:00
event_endpoint_test.go Fix more unstable tests in agent and command 2018-09-12 14:49:27 +01:00
health_endpoint.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
health_endpoint_test.go Add Proxy Upstreams to Service Definition (#4639) 2018-10-10 16:55:34 +01:00
http.go Connect Envoy Command (#4735) 2018-10-10 16:55:34 +01:00
http_oss.go Add -sidecar-for and new /agent/service/:service_id endpoint (#4691) 2018-10-10 16:55:34 +01:00
http_oss_test.go Close HTTP response in Agent test (HTTPAPI_MethodNotAllowed_OSS) 2018-04-10 13:18:46 -04:00
http_test.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
intentions_endpoint.go agent: 400 error on invalid UUID format, api handles errors properly 2018-06-27 07:40:06 +02:00
intentions_endpoint_test.go agent: 400 error on invalid UUID format, api handles errors properly 2018-06-27 07:40:06 +02:00
keyring.go agent: move agent/consul/structs to agent/structs 2017-08-09 14:32:12 +02:00
keyring_test.go New config parser, HCL support, multiple bind addrs (#3480) 2017-09-25 11:40:42 -07:00
kvs_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
kvs_endpoint_test.go Improve reliability of tests with TestAgent (#4525) 2018-08-14 12:08:33 -04:00
notify.go Fixes memory leak when blocking on /event/list (#4482) 2018-08-02 14:54:48 +01:00
notify_test.go Fixes memory leak when blocking on /event/list (#4482) 2018-08-02 14:54:48 +01:00
operator_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
operator_endpoint_test.go Fix unstable tests in agent, api, and command/watch 2018-09-10 16:58:53 +01:00
prepared_query_endpoint.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
prepared_query_endpoint_test.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
remote_exec.go Decouple the code that executes checks from the agent 2017-10-25 11:18:07 +02:00
remote_exec_test.go Fix unstable tests in agent, api, and command/watch 2018-09-10 16:58:53 +01:00
retry_join.go agent: configure k8s go-discover 2018-09-05 13:38:13 -07:00
retry_join_test.go Vendoring update for go-discover. (#4412) 2018-07-25 16:21:04 -07:00
session_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
session_endpoint_test.go Implementation of Weights Data structures (#4468) 2018-09-07 15:30:47 +01:00
sidecar_service.go merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
sidecar_service_test.go merge feedback: fix typos; actually use deliverLatest added previously but not plumbed in 2018-10-10 16:55:34 +01:00
signal_unix.go cli: forward SIGTERM to child process of 'lock' and 'watch' subcommands (#4737) 2018-10-02 15:57:21 -05:00
signal_windows.go cli: forward SIGTERM to child process of 'lock' and 'watch' subcommands (#4737) 2018-10-02 15:57:21 -05:00
snapshot_endpoint.go agent: consolidate handling of 405 Method Not Allowed (#3405) 2017-09-25 23:11:19 -07:00
snapshot_endpoint_test.go agent: consolidate handling of 405 Method Not Allowed (#3405) 2017-09-25 23:11:19 -07:00
status_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
status_endpoint_test.go agent: consolidate handling of 405 Method Not Allowed (#3405) 2017-09-25 23:11:19 -07:00
testagent.go Fix #4515: Segfault when serf_wan port was -1 but reconnect_time_wan was set (#4531) 2018-08-17 14:44:25 -04:00
testagent_test.go New config parser, HCL support, multiple bind addrs (#3480) 2017-09-25 11:40:42 -07:00
translate_addr.go New config parser, HCL support, multiple bind addrs (#3480) 2017-09-25 11:40:42 -07:00
txn_endpoint.go Support OPTIONS requests 2018-02-12 10:15:31 -08:00
txn_endpoint_test.go Improve reliability of tests with TestAgent (#4525) 2018-08-14 12:08:33 -04:00
ui_endpoint.go agent: ExternalSources instead of Meta 2018-09-07 10:06:55 -07:00
ui_endpoint_test.go Added SOA configuration for DNS settings. (#4714) 2018-10-10 15:50:56 -04:00
user_event.go Spelling (#3958) 2018-03-19 16:56:00 +00:00
user_event_test.go local state: tests compile 2017-10-23 10:56:03 +02:00
util.go cli: forward SIGTERM to child process of 'lock' and 'watch' subcommands (#4737) 2018-10-02 15:57:21 -05:00
util_test.go cli: forward SIGTERM to child process of 'lock' and 'watch' subcommands (#4737) 2018-10-02 15:57:21 -05:00
watch_handler.go Support legacy watch.HandlerFunc type for backward compat reduces impact of change 2018-06-14 09:42:05 -07:00
watch_handler_test.go Support legacy watch.HandlerFunc type for backward compat reduces impact of change 2018-06-14 09:42:05 -07:00