open-consul/agent/consul
Lincoln Stoll 5c5e1266e3
perf: Remove expensive reflection from raft/mesh hot path (#16552)
* perf: Remove expensive reflection from raft/mesh hot path

Replaces a reflection-based copy of a struct in the mesh topology with a
deep-copy generated implementation.

This is in the hot-path of raft FSM updates, and the reflection overhead was a
substantial part of mesh registration times (~90%). This could manifest as raft
thread saturation, and resulting instability.

Co-authored-by: Joel Brandhorst <joel.brandhorst@gmail.com>

* add changelog

---------

Co-authored-by: Joel Brandhorst <joel.brandhorst@gmail.com>
Co-authored-by: John Murret <john.murret@hashicorp.com>
2023-05-26 11:42:05 -06:00
..
auth copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
authmethod copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
autopilotevents copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
controller controller: deduplicate items in queue (#17168) 2023-05-09 18:14:20 +01:00
discoverychain xds: generate routes directly from API gateway snapshot (#17392) 2023-05-25 09:54:55 -05:00
fsm JWT Authentication with service intentions: xds package update (#17414) 2023-05-19 18:14:16 -04:00
gateways controller: make the WorkQueue generic (#16982) 2023-05-05 15:38:22 +01:00
multilimiter copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
prepared_query Add sameness group field to prepared queries (#17089) 2023-04-24 13:21:28 -07:00
rate add necessary plumbing to implement per server ip based rate limiting (#17436) 2023-05-23 15:37:01 -04:00
reporting feat: add no-op reporting background routine (#17178) 2023-04-28 20:07:03 -04:00
servercert copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
state perf: Remove expensive reflection from raft/mesh hot path (#16552) 2023-05-26 11:42:05 -06:00
stream copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
testdata ca: examine the full chain in newCARoot 2022-02-17 18:21:30 -05:00
usagemetrics [NET-3090] Add new JWT provider config entry (#17036) 2023-04-19 17:54:14 -04:00
wanfed copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
watch copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
xdscapacity copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_authmethod.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_authmethod_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_client.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_endpoint.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
acl_endpoint_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_endpoint_test.go Remove artificial ACLTokenMaxTTL limit for configuring acl token expiry (#17066) 2023-04-28 10:57:30 -05:00
acl_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_replication.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_replication_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_replication_types.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_server.go Only synthesize anonymous token in primary DC (#17231) 2023-05-23 09:38:04 -05:00
acl_server_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_token_exp.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
acl_token_exp_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_config_backend.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_config_backend_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_config_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_config_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_encrypt_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
auto_encrypt_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
autopilot.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
autopilot_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
autopilot_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
catalog_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
catalog_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
client.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
client_serf.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
client_test.go grpc: ensure grpc resolver correctly uses lan/wan addresses on servers (#17270) 2023-05-11 11:08:57 -05:00
cluster_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
config.go agent: prevent very old servers re-joining a cluster with stale data (#17171) 2023-05-15 04:05:47 -07:00
config_cloud.go Update HCP bootstrapping to support existing clusters (#16916) 2023-04-27 22:27:39 +02:00
config_endpoint.go Permissive mTLS: Config entry filtering and CLI warnings (#17183) 2023-04-28 12:51:36 -05:00
config_endpoint_test.go Permissive mTLS: Config entry filtering and CLI warnings (#17183) 2023-04-28 12:51:36 -05:00
config_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
config_replication.go extract some config entry helpers into package (#17434) 2023-05-23 12:15:30 -05:00
config_replication_test.go extract some config entry helpers into package (#17434) 2023-05-23 12:15:30 -05:00
config_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
connect_ca_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
connect_ca_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
context.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
context_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
coordinate_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
coordinate_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
discovery_chain_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
discovery_chain_endpoint_test.go Attach service virtual IP info to compiled discovery chain (#17295) 2023-05-12 02:28:16 +00:00
enterprise_client_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
enterprise_config_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
enterprise_server_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
enterprise_server_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
federation_state_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
federation_state_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
federation_state_replication.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
federation_state_replication_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
filter.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
filter_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
flood.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
gateway_locator.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
gateway_locator_test.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
grpc_integration_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
health_endpoint.go Fix ACL check on health endpoint (#17424) 2023-05-24 16:35:55 -05:00
health_endpoint_test.go Fix ACL check on health endpoint (#17424) 2023-05-24 16:35:55 -05:00
helper_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
intention_endpoint.go Add sameness groups to service intentions. (#17064) 2023-04-20 12:16:04 -04:00
intention_endpoint_test.go Add sameness groups to service intentions. (#17064) 2023-04-20 12:16:04 -04:00
internal_endpoint.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
internal_endpoint_test.go Add /v1/internal/service-virtual-ip for manually setting service VIPs (#17294) 2023-05-12 00:38:52 +00:00
issue_test.go Raft storage backend (#16619) 2023-04-04 17:30:06 +01:00
kvs_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
kvs_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader.go Update HCP bootstrapping to support existing clusters (#16916) 2023-04-27 22:27:39 +02:00
leader_connect.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
leader_connect_ca.go Connect CA Primary Provider refactor (#16749) 2023-04-03 11:40:33 -04:00
leader_connect_ca_test.go Connect CA Primary Provider refactor (#16749) 2023-04-03 11:40:33 -04:00
leader_connect_test.go Connect CA Primary Provider refactor (#16749) 2023-04-03 11:40:33 -04:00
leader_federation_state_ae.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_federation_state_ae_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_intentions.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
leader_intentions_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_intentions_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_intentions_test.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
leader_log_verification.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_metrics.go log warning about certificate expiring sooner and with more details 2023-04-07 20:38:07 +00:00
leader_metrics_test.go [COMPLIANCE] Add Copyright and License Headers (#16854) 2023-04-20 12:40:22 +00:00
leader_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_peering.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
leader_peering_test.go Allow dialer to re-establish terminated peering (#16776) 2023-04-03 12:07:45 -06:00
leader_test.go Update HCP bootstrapping to support existing clusters (#16916) 2023-04-27 22:27:39 +02:00
logging.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
logging_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
merge.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
merge_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
merge_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
merge_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_autopilot_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_autopilot_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_backend.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_backend_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_raft_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_raft_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
operator_usage_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
options.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
options_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
peering_backend.go Allow dialer to re-establish terminated peering (#16776) 2023-04-03 12:07:45 -06:00
peering_backend_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
peering_backend_oss_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
peering_backend_test.go Allow dialer to re-establish terminated peering (#16776) 2023-04-03 12:07:45 -06:00
prepared_query_endpoint.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
prepared_query_endpoint_oss.go Add sameness group field to prepared queries (#17089) 2023-04-24 13:21:28 -07:00
prepared_query_endpoint_oss_test.go Add sameness group field to prepared queries (#17089) 2023-04-24 13:21:28 -07:00
prepared_query_endpoint_test.go Add sameness group field to prepared queries (#17089) 2023-04-24 13:21:28 -07:00
raft_handle.go [COMPLIANCE] Add Copyright and License Headers (#16854) 2023-04-20 12:40:22 +00:00
raft_rpc.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
replication.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
replication_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
rpc.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
rpc_test.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
rtt.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
rtt_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
segment_oss.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
serf_filter.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
serf_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
server_connect.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_log_verification.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_lookup.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_lookup_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_metadata.go agent: prevent very old servers re-joining a cluster with stale data (#17171) 2023-05-15 04:05:47 -07:00
server_metadata_test.go agent: prevent very old servers re-joining a cluster with stale data (#17171) 2023-05-15 04:05:47 -07:00
server_oss.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
server_oss_test.go [COMPLIANCE] Add Copyright and License Headers (#16854) 2023-04-20 12:40:22 +00:00
server_overview.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_overview_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_register.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
server_serf.go grpc: ensure grpc resolver correctly uses lan/wan addresses on servers (#17270) 2023-05-11 11:08:57 -05:00
server_test.go xds: generate listeners directly from API gateway snapshot (#17398) 2023-05-22 17:36:29 -04:00
session_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
session_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
session_timers.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
session_timers_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
session_ttl.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
session_ttl_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
snapshot_endpoint.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
snapshot_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
stats_fetcher.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
stats_fetcher_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
status_endpoint.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
status_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
subscribe_backend.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
subscribe_backend_test.go grpc: ensure grpc resolver correctly uses lan/wan addresses on servers (#17270) 2023-05-11 11:08:57 -05:00
system_metadata.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
system_metadata_test.go feat: set up reporting agent (#16991) 2023-04-18 11:03:05 -04:00
txn_endpoint.go [OSS] gRPC Blocking Queries (#17426) 2023-05-23 17:29:10 -04:00
txn_endpoint_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
util.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00
util_test.go copyright headers for agent folder (#16704) 2023-03-28 14:39:22 -04:00