Repository navigation
Remove ringbuffer - #8537
Merged
Eddy Ashton (eddyashton) merged 5 commits intoOct 9, 2026
Merged
Remove ringbuffer#8537
Conversation
Eddy Ashton (eddyashton)
added this pull request to stack #8541
October 8, 2026 16:22
Base automatically changed from
agents/final-ringbuffer-tick-removal-implementation
to
main
October 9, 2026 14:11
Amaury Chamayou (achamayou)
force-pushed
the
agents/ringbuffer-code-removal-finalization
branch
from
October 9, 2026 14:11
8029d3f to
5583bfb
Compare
Amaury Chamayou (achamayou)
approved these changes
Oct 9, 2026
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Public configuration and threading documentation still describes removed ring-buffer and dispatch-thread behavior.
2 open findings
What changed in this PR
Removes obsolete host-enclave ring-buffer infrastructure after transport and maintenance migrated to typed services and scheduled tasks.
Changes:
- Deletes ring-buffer implementation, serializers, tests, benchmarks, and tooling.
- Simplifies enclave startup, shutdown, and lifecycle coordination.
- Updates retained tests, build registration, and documentation.
Custom instructions used
.github/copilot-instructions.md.github/instructions/reviewing.instructions.md.github/skills/testing/SKILL.md.github/skills/formatting-and-linting/SKILL.md
| File | Description |
|---|---|
tsan_env_suppressions |
Removes obsolete ring-buffer guidance. |
tests/plot_node_load.py |
Deletes ring-buffer load plotting. |
tests/infra/e2e_args.py |
Generalizes message-size help text. |
tests/e2e_operations.py |
Updates snapshot test description. |
tests/e2e_batched.py |
Removes ring-buffer terminology from response tests. |
tests/ci-buckets.txt |
Removes deleted benchmark registration. |
src/tls/datagram_server.h |
Removes obsolete transport comparison. |
src/node/rpc/serialization.h |
Removes ring-buffer message include. |
src/node/rpc/ringbuffer_messages.h |
Deletes administrative ring-buffer messages. |
src/node/rpc/node_call_types.h |
Removes obsolete include. |
src/node/node_state.h |
Updates asynchronous processing rationale. |
src/indexing/test/lfs.cpp |
Updates host-read comments. |
src/host/ticker.h |
Deletes ring-buffer ticker. |
src/host/test/runtime_control.cpp |
Removes shutdown-drain test behavior. |
src/host/runtime_control.h |
Simplifies host-loop shutdown. |
src/host/run.cpp |
Removes circuits, writers, dispatch, and draining. |
src/host/ledger_subsystem.h |
Updates shutdown documentation. |
src/host/handle_ring_buffer.h |
Deletes host ring-buffer handler. |
src/enclave/main.cpp |
Removes circuit and shared beacon setup. |
src/enclave/entry_points.h |
Simplifies enclave creation interface. |
src/enclave/enclave.h |
Replaces message dispatch with lifecycle coordination. |
src/ds/test/typed_messages.cpp |
Deletes typed ring-buffer tests. |
src/ds/test/stub_writer.h |
Deletes ring-buffer test writer. |
src/ds/test/serializer.cpp |
Deletes ring-buffer serializer tests. |
src/ds/test/serialized.cpp |
Supplies the remaining DS test main. |
src/ds/test/ring_buffer.cpp |
Deletes ring-buffer tests. |
src/ds/test/ring_buffer_bench.cpp |
Deletes ring-buffer benchmark. |
src/ds/test/oversized.cpp |
Deletes fragmentation tests. |
src/ds/test/messaging.cpp |
Deletes messaging tests. |
src/ds/serializer.h |
Deletes ring-buffer serializers. |
src/ds/ring_buffer.h |
Deletes ring-buffer implementation. |
src/ds/ring_buffer_types.h |
Deletes ring-buffer types and writer APIs. |
src/ds/oversized.h |
Deletes fragmentation support. |
src/ds/notifying.h |
Deletes notifying writers. |
src/ds/non_blocking.h |
Deletes queued ring-buffer writers. |
src/ds/messaging.h |
Deletes ring-buffer dispatch infrastructure. |
src/consensus/ledger_enclave_types.h |
Generalizes ledger response allowance documentation. |
src/consensus/aft/raft_types.h |
Removes obsolete include. |
src/common/configuration.h |
Deletes enclave circuit configuration. |
include/ccf/entity_id.h |
Removes ring-buffer serialization comment. |
doc/spelling_wordlist.txt |
Removes ring-buffer spellings. |
doc/overview/glossary.rst |
Removes ring-buffer definition and updates RPC text. |
doc/operations/resource_usage.rst |
Documents coordination and scheduled tasks. |
doc/build_apps/logging.rst |
Documents direct framework logging. |
doc/architecture/tcp_internals.rst |
Updates RPC and TCP architecture descriptions. |
CMakeLists.txt |
Removes deleted tests and benchmark. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Amaury Chamayou (achamayou)
approved these changes
Oct 9, 2026
Delete the circuits, message dispatch, fragmentation helpers, tests, and documentation left after all production traffic moved to typed host services and scheduled tasks. Keep the existing public memory configuration accepted unchanged for a later compatibility migration.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Snapshots no longer cross a ringbuffer message-size boundary, so this regression no longer exercises a production constraint. The adjacent snapshot creation and parsing tests retain coverage of the remaining behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The enclave main thread now only coordinates lifecycle events. Describe it consistently as the coordination thread in implementation comments, operator documentation, and the worker_threads schema. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
run_file_operations lowered memory.max_msg_size to 1MB so that test_large_snapshot could cheaply exceed it, and capped ledger.max_transaction_size below that to satisfy the host validation. With the test removed, the remaining file operation tests use the default limits. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Chamayou (achamayou)
force-pushed
the
agents/ringbuffer-code-removal-finalization
branch
from
October 9, 2026 14:59
ad21dcd to
7c419a4
Compare
Eddy Ashton (eddyashton)
deleted the
agents/ringbuffer-code-removal-finalization
branch
October 9, 2026 15:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Motivation
Stacked on #8535 as the final implementation step of the ringbuffer-removal plan. All production traffic and periodic maintenance have moved to typed host services and scheduled tasks, leaving the host-enclave ringbuffer infrastructure unused.
This PR removes that dead infrastructure. Configuration migration remains a separate follow-up.
Implementation summary
memory.circuit_size,memory.max_msg_sizeandmemory.max_fragment_sizeaccepted with unchanged defaults and JSON registration.Safety and compatibility
There is no intended runtime, public API, configuration, node wire-format or ledger-format change. The removed code has no production caller after #8535. Mixed-version protocol compatibility is unchanged, and the existing
memoryfields remain accepted pending a separate compatibility migration.Validation:
CLANG_TIDY=ONbuild completes all 333 steps with all 16 available CPUs and no clang-tidy warnings or errors.No changelog entry is included because this is internal cleanup with no intended user-facing impact.