Repository navigation
[Store] Structure NoFDebugConfig environment settings - #4203
Merged
Aionw merged 2 commits intoSep 28, 2026
Merged
Conversation
Signed-off-by: Schatten <czhengt@qq.com>
bitborne
requested review from
XucSh,
YiXR,
stmatengss and
ykwd
as code owners
September 17, 2026 16:57
Aionw
reviewed
Sep 18, 2026
|
|
||
| struct NoFDebugConfig { | ||
| bool enabled = false; | ||
| int interval_ms = 1000; |
Aionw
reviewed
Sep 18, 2026
| bool enabled = false; | ||
| int interval_ms = 1000; | ||
|
|
||
| static bool ReadEnabledFromEnvironment(); |
Collaborator
There was a problem hiding this comment.
Visibility issue, only part of those static method need to be public.
Signed-off-by: Schatten <czhengt@qq.com>
This was referenced Sep 21, 2026
Aionw
approved these changes
Sep 28, 2026
1 task done
ykwd
approved these changes
Sep 28, 2026
LujhCoconut
added a commit
to LujhCoconut/Mooncake
that referenced
this pull request
Oct 9, 2026
Resolve conflicts between the NoF/SPDK decoupling and mainline work: - Env-var structuration PRs (kvcache-ai#4166/kvcache-ai#4170/kvcache-ai#4203): keep the neutral NoF naming/refactor while adopting the client-owned config structs (NoFDebugConfig, NoFWorkerPoolConfig, FilereadWorkerPoolConfig); QoS byte-limit vars stay in transfer_task.cpp, matching main (open kvcache-ai#4171). - kvcache-ai#3665 embedded master + P2PHANDSHAKE metadata resolution compose with the added nof_initiator injection in Client::Create. - kvcache-ai#4070 TENT native API layered onto the refactored TransferSubmitter. - kvcache-ai#3717 (ShmHelper/receiver shm SPDK registration) is ported from the deleted SpdkWrapper singleton onto the NVMeoFInitiator interface and the process-global NofPageRegistry: registrations normalize to 2MB pages with per-page refcounts, -EBUSY pages are absorbed as external, and a failed Register owns no registration. ShmHelper's singleton is now deliberately leaked so exit-time cleanup can never touch a torn-down registry/env; the SpdkEnvGuard process pin makes the old construction-ordering hack unnecessary.
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.
Description
Part of #3809. Extract
MC_NOF_DEBUGandMC_NOF_DEBUG_INTERVAL_MSfromtransfer_task.cppinto a private, client-ownedNoFDebugConfigand the common environment catalog. The NoF call sites retain their existing behavior: truthy tokens are case-insensitive (1,true,yes,on), invalid/absent intervals use 1000 ms, and each value is cached independently on its first use. The existing NoF QoS and worker settings remain outside this PR.Raw strings intentionally preserve the old
strtolsyntax, including accepted leading whitespace and rejected trailing whitespace, without adding warnings or changing the public API. This follows the single-owner boundaries of merged #4165 and #4166. Open #4171 and #3424 also edit nearby NoF code but do not own these two debug variables; #4179 moves the client source layout. Any integration conflicts can be addressed if those PRs merge first.Module
mooncake-store)mooncake-common)Type of Change
How Has This Been Tested?
Test commands:
cmake --build build/config-check --target nof_debug_config_test --parallel 231 ctest --test-dir build/config-check -R '^nof_debug_config_test$' --output-on-failure ./scripts/code_format.sh --check --staged pre-commit run --files mooncake-common/include/environment_variables.h mooncake-store/src/CMakeLists.txt mooncake-store/src/config/nof_debug_config.cpp mooncake-store/src/config/nof_debug_config.h mooncake-store/src/transfer_task.cpp mooncake-store/tests/CMakeLists.txt mooncake-store/tests/nof_debug_config_test.cppTest results:
The new tests first failed with the default-only implementation, then passed after the configuration extraction. NoF-enabled compilation and integration should be validated in the NoF CI job.
Checklist
./scripts/code_format.shNo documentation change: existing opt-in values and behavior remain unchanged.
AI Assistance Disclosure
Codex assisted with ownership analysis, implementation, focused RED-to-GREEN tests, and review. The human submitter will review every changed line and is responsible for the change end to end.