| # Copyright 2022 gRPC authors. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # Format of each entry: | |
| # name: name of the experiment | |
| # description: description of the experiment | |
| # expiry: when is the next time this experiment *must* be updated | |
| # (date, YYYY/MM/DD) | |
| # test_tags: a set of bazel tags, that if a test declares them signals | |
| # that that test should be run with this experiment enabled in CI | |
| # allow_in_fuzzing_config: optional boolean (true if not specified) | |
| # if false, this experiment will not be included in fuzzers that | |
| # explore the config space | |
| # | |
| # Well known test tags: | |
| # core_end2end_test: all tests, fixtures in the core end2end suite | |
| # endpoint_test: endpoint related iomgr tests | |
| # flow_control_test: tests pertaining explicitly to flow control | |
| # hpack_test: hpack encode/decode tests | |
| # promise_test: tests around the promise architecture | |
| # resource_quota_test: tests known to exercse resource quota | |
| # This file only defines the experiments. Refer to rollouts.yaml for the rollout | |
| # state of each experiment. | |
| - name: tcp_frame_size_tuning | |
| description: | |
| If set, enables TCP to use RPC size estimation made by higher layers. | |
| TCP would not indicate completion of a read operation until a specified | |
| number of bytes have been read over the socket. | |
| Buffers are also allocated according to estimated RPC sizes. | |
| expiry: 2023/08/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: ["endpoint_test", "flow_control_test"] | |
| - name: tcp_rcv_lowat | |
| description: Use SO_RCVLOWAT to avoid wakeups on the read path. | |
| expiry: 2023/08/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: ["endpoint_test", "flow_control_test"] | |
| - name: peer_state_based_framing | |
| description: | |
| If set, the max sizes of frames sent to lower layers is controlled based | |
| on the peer's memory pressure which is reflected in its max http2 frame | |
| size. | |
| expiry: 2023/08/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: ["flow_control_test"] | |
| - name: memory_pressure_controller | |
| description: New memory pressure controller | |
| expiry: 2023/08/01 | |
| owner: ctiller@google.com | |
| test_tags: [resource_quota_test] | |
| - name: unconstrained_max_quota_buffer_size | |
| description: Discard the cap on the max free pool size for one memory allocator | |
| expiry: 2023/09/01 | |
| owner: ctiller@google.com | |
| test_tags: [resource_quota_test] | |
| - name: event_engine_client | |
| description: Use EventEngine clients instead of iomgr's grpc_tcp_client | |
| expiry: 2023/10/01 | |
| owner: hork@google.com | |
| test_tags: ["core_end2end_test", "event_engine_client_test"] | |
| - name: monitoring_experiment | |
| description: Placeholder experiment to prove/disprove our monitoring is working | |
| expiry: never-ever | |
| owner: ctiller@google.com | |
| test_tags: [] | |
| - name: promise_based_client_call | |
| description: | |
| If set, use the new gRPC promise based call code when it's appropriate | |
| (ie when all filters in a stack are promise based) | |
| expiry: 2023/11/01 | |
| owner: ctiller@google.com | |
| test_tags: ["core_end2end_test", "lame_client_test"] | |
| - name: free_large_allocator | |
| description: If set, return all free bytes from a "big" allocator | |
| expiry: 2023/11/01 | |
| owner: alishananda@google.com | |
| test_tags: [resource_quota_test] | |
| - name: promise_based_server_call | |
| description: | |
| If set, use the new gRPC promise based call code when it's appropriate | |
| (ie when all filters in a stack are promise based) | |
| expiry: 2023/11/01 | |
| owner: ctiller@google.com | |
| test_tags: ["core_end2end_test", "cpp_end2end_test", "xds_end2end_test"] | |
| - name: transport_supplies_client_latency | |
| description: If set, use the transport represented value for client latency in opencensus | |
| expiry: 2023/09/01 | |
| owner: ctiller@google.com | |
| test_tags: [census_test] | |
| - name: event_engine_listener | |
| description: Use EventEngine listeners instead of iomgr's grpc_tcp_server | |
| expiry: 2023/10/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: ["core_end2end_test", "event_engine_listener_test"] | |
| - name: schedule_cancellation_over_write | |
| description: Allow cancellation op to be scheduled over a write | |
| expiry: 2023/10/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: [] | |
| - name: trace_record_callops | |
| description: Enables tracing of call batch initiation and completion. | |
| expiry: 2023/10/01 | |
| owner: vigneshbabu@google.com | |
| test_tags: [] | |
| - name: event_engine_dns | |
| description: | |
| If set, use EventEngine DNSResolver for client channel resolution | |
| expiry: 2023/10/01 | |
| owner: yijiem@google.com | |
| test_tags: [] | |
| allow_in_fuzzing_config: false | |
| - name: work_stealing | |
| description: | |
| If set, use a work stealing thread pool implementation in EventEngine | |
| expiry: 2023/08/01 | |
| owner: hork@google.com | |
| test_tags: ["core_end2end_test"] | |
| allow_in_fuzzing_config: false | |
| - name: client_privacy | |
| description: | |
| If set, client privacy | |
| expiry: 2023/11/01 | |
| owner: alishananda@google.com | |
| test_tags: [] | |
| allow_in_fuzzing_config: false | |
| - name: canary_client_privacy | |
| description: | |
| If set, canary client privacy | |
| expiry: 2023/11/01 | |
| owner: alishananda@google.com | |
| test_tags: [] | |
| allow_in_fuzzing_config: false | |
| - name: server_privacy | |
| description: | |
| If set, server privacy | |
| expiry: 2023/11/01 | |
| owner: alishananda@google.com | |
| test_tags: [] | |
| allow_in_fuzzing_config: false | |
| - name: unique_metadata_strings | |
| description: | |
| Ensure a unique copy of strings from parsed metadata are taken. | |
| The hypothesis here is that ref counting these are causing read buffer | |
| lifetimes to be extended leading to memory bloat. | |
| expiry: 2023/11/01 | |
| owner: ctiller@google.com | |
| test_tags: ["core_end2end_test"] | |
| allow_in_fuzzing_config: true | |
| - name: keepalive_fix | |
| description: | |
| Allows overriding keepalive_permit_without_calls. | |
| Refer https://github.com/grpc/grpc/pull/33428 for more information. | |
| expiry: 2023/09/07 | |
| owner: yashkt@google.com | |
| test_tags: [] | |
| allow_in_fuzzing_config: false |