blob: 570d9abb0981a92134e8660fbe8d59944691e1cf [file]
# 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