eds: optionalize counting of unknown fields (#10982)

In order to speed up eds, don't necessarily visit every proto field to count its validity as WarningValidationVisitor does. This yields a ~30% speed improvement in processing very large updates in EDS.

Risk Level: medium, new feature behind a command line flag.
Testing: Unit and bechmark tests.
Docs Changes: These are probably wrong, thus the draft-ness.
Release Notes: EDS can now ignore unknown dynamic fields, for a ~30% improvement in update processing time. Behind --ignore-unknown-dynamic-fields

Co-authored-by: Joshua Marantz <jmarantz@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ 703f2fbdd4d2b11db901a74d15726bc6c017189b
master-ci-test
data-plane-api(CircleCI) 5 years ago
parent 60a76f2732
commit e9bc5e0998
  1. 5
      envoy/admin/v3/server_info.proto
  2. 5
      envoy/admin/v4alpha/server_info.proto

@ -54,7 +54,7 @@ message ServerInfo {
CommandLineOptions command_line_options = 6;
}
// [#next-free-field: 30]
// [#next-free-field: 31]
message CommandLineOptions {
option (udpa.annotations.versioning).previous_message_type =
"envoy.admin.v2alpha.CommandLineOptions";
@ -97,6 +97,9 @@ message CommandLineOptions {
// See :option:`--reject-unknown-dynamic-fields` for details.
bool reject_unknown_dynamic_fields = 26;
// See :option:`--ignore-unknown-dynamic-fields` for details.
bool ignore_unknown_dynamic_fields = 30;
// See :option:`--admin-address-path` for details.
string admin_address_path = 6;

@ -54,7 +54,7 @@ message ServerInfo {
CommandLineOptions command_line_options = 6;
}
// [#next-free-field: 30]
// [#next-free-field: 31]
message CommandLineOptions {
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.CommandLineOptions";
@ -96,6 +96,9 @@ message CommandLineOptions {
// See :option:`--reject-unknown-dynamic-fields` for details.
bool reject_unknown_dynamic_fields = 26;
// See :option:`--ignore-unknown-dynamic-fields` for details.
bool ignore_unknown_dynamic_fields = 30;
// See :option:`--admin-address-path` for details.
string admin_address_path = 6;

Loading…
Cancel
Save