The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
291 lines
10 KiB
291 lines
10 KiB
# 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: block_excessive_requests_before_settings_ack |
|
description: |
|
If set, block excessive requests before receiving SETTINGS ACK. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [bad_client_test] |
|
- name: call_status_override_on_cancellation |
|
description: |
|
Avoid overriding call status of successfully finished calls if it races with |
|
cancellation. |
|
expiry: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: [] |
|
- 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: chttp2_batch_requests |
|
description: |
|
Cap the number of requests received by one transport read prior to offload. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: ["cpp_end2end_test", "flow_control_test"] |
|
- name: chttp2_offload_on_rst_stream |
|
description: |
|
Offload work on RST_STREAM. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: ["cpp_end2end_test", "flow_control_test"] |
|
- name: client_idleness |
|
description: If enabled, client channel idleness is enabled by default. |
|
expiry: 2023/12/15 |
|
owner: roth@google.com |
|
test_tags: [] |
|
- name: client_privacy |
|
description: |
|
If set, client privacy |
|
expiry: 2023/11/01 |
|
owner: alishananda@google.com |
|
test_tags: [] |
|
allow_in_fuzzing_config: false |
|
- name: combiner_offload_to_event_engine |
|
description: |
|
Offload Combiner work onto the EventEngine instead of the Executor. |
|
expiry: 2024/01/15 |
|
owner: hork@google.com |
|
test_tags: [] |
|
- name: event_engine_client |
|
description: Use EventEngine clients instead of iomgr's grpc_tcp_client |
|
expiry: 2024/01/21 |
|
owner: hork@google.com |
|
test_tags: ["core_end2end_test", "event_engine_client_test"] |
|
- name: event_engine_dns |
|
description: |
|
If set, use EventEngine DNSResolver for client channel resolution |
|
expiry: 2024/01/08 |
|
owner: yijiem@google.com |
|
test_tags: ["cancel_ares_query_test", "resolver_component_tests_runner_invoker"] |
|
allow_in_fuzzing_config: false |
|
- name: event_engine_listener |
|
description: Use EventEngine listeners instead of iomgr's grpc_tcp_server |
|
expiry: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: ["core_end2end_test", "event_engine_listener_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: keepalive_fix |
|
description: |
|
Allows overriding keepalive_permit_without_calls. |
|
Refer https://github.com/grpc/grpc/pull/33428 for more information. |
|
expiry: 2024/06/30 |
|
owner: yashkt@google.com |
|
test_tags: [] |
|
allow_in_fuzzing_config: false |
|
- name: keepalive_server_fix |
|
description: |
|
Allows overriding keepalive_permit_without_calls for servers. |
|
Refer https://github.com/grpc/grpc/pull/33917 for more information. |
|
expiry: 2023/12/31 |
|
owner: yashkt@google.com |
|
test_tags: [] |
|
allow_in_fuzzing_config: false |
|
- name: lazier_stream_updates |
|
description: |
|
Allow streams to consume up to 50% of the incoming window before we |
|
force send a flow control update. |
|
expiry: 2024/01/23 |
|
owner: ctiller@google.com |
|
test_tags: [flow_control_test] |
|
- name: memory_pressure_controller |
|
description: New memory pressure controller |
|
expiry: 2024/05/05 |
|
owner: ctiller@google.com |
|
test_tags: [resource_quota_test] |
|
- name: monitoring_experiment |
|
description: Placeholder experiment to prove/disprove our monitoring is working |
|
expiry: never-ever |
|
owner: ctiller@google.com |
|
test_tags: [] |
|
- name: multiping |
|
description: |
|
Allow more than one ping to be in flight at a time by default. |
|
expiry: 2024/01/15 |
|
owner: ctiller@google.com |
|
test_tags: [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: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: ["flow_control_test"] |
|
- name: pick_first_happy_eyeballs |
|
description: |
|
Use Happy Eyeballs in pick_first. |
|
expiry: 2023/12/15 |
|
owner: roth@google.com |
|
test_tags: ["lb_unit_test", "cpp_lb_end2end_test", "xds_end2end_test"] |
|
- name: ping_on_rst_stream |
|
description: |
|
Send a ping on receiving some RST_STREAM frames on the server |
|
(proportion configurable via grpc.http2.ping_on_rst_stream_percent channel arg). |
|
expiry: 2024/03/03 |
|
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: promise_based_inproc_transport |
|
description: |
|
Use promises for the in-process transport. |
|
expiry: 2024/06/06 |
|
owner: ctiller@google.com |
|
test_tags: [] |
|
- 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", "logging_test"] |
|
- name: red_max_concurrent_streams |
|
description: |
|
Perform random early rejection of requests that would exceed a newly reduced |
|
MAX_CONCURRENT_STREAMS but are allowed by the current. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [flow_control_test] |
|
- name: registered_method_lookup_in_transport |
|
description: |
|
Change registered method's lookup point to transport |
|
expiry: 2024/03/31 |
|
owner: yashkt@google.com |
|
test_tags: ["surface_registered_method_lookup"] |
|
- name: round_robin_delegate_to_pick_first |
|
description: |
|
Change round_robin code to delegate to pick_first as per dualstack |
|
backend design. |
|
expiry: 2023/11/15 |
|
owner: roth@google.com |
|
test_tags: ["lb_unit_test", "cpp_lb_end2end_test", "xds_end2end_test"] |
|
- name: rstpit |
|
description: |
|
On RST_STREAM on a server, reduce MAX_CONCURRENT_STREAMS for a short duration |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [flow_control_test] |
|
- name: schedule_cancellation_over_write |
|
description: Allow cancellation op to be scheduled over a write |
|
expiry: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: [] |
|
- name: separate_ping_from_keepalive |
|
description: |
|
Keep a different keepalive timeout (resolution is seeing data after sending a ping) |
|
from a ping timeout (resolution is getting a ping ack after sending a ping) |
|
The first can be short and determines liveness. |
|
The second can be longer and determines protocol correctness. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [] |
|
- name: server_privacy |
|
description: |
|
If set, server privacy |
|
expiry: 2023/11/01 |
|
owner: alishananda@google.com |
|
test_tags: [] |
|
allow_in_fuzzing_config: false |
|
- name: settings_timeout |
|
description: |
|
If set, use the settings timeout to send settings frame to the peer. |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [] |
|
- name: tarpit |
|
description: |
|
If set, tarpit invalid requests for some amount of time |
|
expiry: 2024/03/03 |
|
owner: ctiller@google.com |
|
test_tags: [bad_client_test] |
|
- 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: 2024/01/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: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: ["endpoint_test", "flow_control_test"] |
|
- name: trace_record_callops |
|
description: Enables tracing of call batch initiation and completion. |
|
expiry: 2024/01/01 |
|
owner: vigneshbabu@google.com |
|
test_tags: [] |
|
- name: unconstrained_max_quota_buffer_size |
|
description: Discard the cap on the max free pool size for one memory allocator |
|
expiry: 2024/02/01 |
|
owner: ctiller@google.com |
|
test_tags: [resource_quota_test] |
|
- name: work_serializer_clears_time_cache |
|
description: |
|
Have the work serializer clear the time cache when it dispatches work. |
|
expiry: 2024/01/01 |
|
owner: ctiller@google.com |
|
test_tags: [] |
|
- name: work_serializer_dispatch |
|
description: |
|
Have the work serializer dispatch work to event engine for every callback, |
|
instead of running things inline in the first thread that successfully |
|
enqueues work. |
|
expiry: 2024/02/10 |
|
owner: ctiller@google.com |
|
test_tags: ["core_end2end_test", "cpp_end2end_test", "xds_end2end_test", "lb_unit_test"] |
|
- name: wrr_delegate_to_pick_first |
|
description: |
|
Change WRR code to delegate to pick_first as per dualstack |
|
backend design. |
|
expiry: 2023/11/15 |
|
owner: roth@google.com |
|
test_tags: ["lb_unit_test", "cpp_lb_end2end_test", "xds_end2end_test"]
|
|
|