milvus/pkg/streaming/util/message
Zhen Ye 446f06eb02
enhance: Implement rate limiting in WAL append operations (#47179)
issue: #47178

This commit introduces a rate limiting mechanism for Write-Ahead Logging
(WAL) operations to prevent overload during high traffic. Key changes
include:

- Added `RateLimitObserver` to monitor and control the rate of DML
operations.
- Add Adaptive RateLimitController to apply the strategy of rate limit.
- WAL will slow down if the recovery-storage works on catchup mode or
node memory is high.
- Updated `WAL` and related components to handle rate limit states,
including rejection and slowdown.
- Introduced new error codes for rate limit rejection in the streaming
error handling.
- Enhanced tests to cover the new rate limiting functionality.

These changes aim to improve the stability and performance of the
streaming service under load.

---------

Signed-off-by: chyezh <chyezh@outlook.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 16:19:26 +08:00
..
adaptor feat: part1 for add field backfill(#44444) (#46808) 2026-02-05 19:19:52 +08:00
ce
codegen feat: [ExternalTable Part3] Support manual refresh for external collections (#47492) 2026-02-26 11:20:46 +08:00
messageutil
broadcast.go enhance: support AckSyncUp for broadcaster, and enable it in truncate api (#46313) 2025-12-17 16:55:17 +08:00
broadcast_test.go fix: wrong update timetick of collection meta info (#45461) 2025-11-11 16:01:36 +08:00
builder.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
builder_test.go enhance: support AckSyncUp for broadcaster, and enable it in truncate api (#46313) 2025-12-17 16:55:17 +08:00
cipher.go fix: Check for error msg because the error type is missing (#47366) 2026-01-28 17:19:32 +08:00
cipher_test.go fix: Check for error msg because the error type is missing (#47366) 2026-01-28 17:19:32 +08:00
cluster_broadcast.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
cluster_broadcast_test.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
encoder.go
encoder_test.go
marshal_log_object.go fix: remove redundant log (#46695) 2025-12-31 15:35:21 +08:00
message.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
message_builder_test.go
message_handler.go
message_id.go
message_id_test.go
message_impl.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
message_test.go enhance: Implement rate limiting in WAL append operations (#47179) 2026-03-18 16:19:26 +08:00
message_type.go enhance: Implement rate limiting in WAL append operations (#47179) 2026-03-18 16:19:26 +08:00
properties.go enhance: refactor WithClusterLevelBroadcast to use external channel list and add FlushAll integration test (#47656) 2026-02-26 11:36:47 +08:00
reflect_info.go feat: [ExternalTable Part3] Support manual refresh for external collections (#47492) 2026-02-26 11:20:46 +08:00
resource_key.go feat: Add comprehensive snapshot functionality for collections (#44361) 2026-01-06 10:15:24 +08:00
resource_key_test.go
specialized_message.go fix: remove redundant log (#46695) 2025-12-31 15:35:21 +08:00
specialized_message_test.go
test_case.go
txn.go
txn_test.go
utils.go
version.go
wal_name.go enhance: support switching of WAL implementation (#45286) 2026-01-18 20:13:29 +08:00