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

# 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"]