SDSTOR-20656: clear wbc chunk selector - #912
Conversation
e2d3391 to
1d2aef4
Compare
| ${HOMESTORE_OBJECTS} | ||
| ) | ||
| target_link_libraries(homestore ${COMMON_DEPS}) | ||
| target_compile_definitions(homestore PRIVATE _PRERELEASE) |
There was a problem hiding this comment.
why we need this _PRERELEASE here? I think target_compile_definitions(test_index_chunk_selector PRIVATE _PRERELEASE) in tests/CmakeLists.txt is enough for the new test case
There was a problem hiding this comment.
Because otherwise the code won't compile.
There was a problem hiding this comment.
adding _PRERELEASE unconditionally to the homestore library itself means every build (including production Release builds) will now permanently carry _PRERELEASE: extra fault-injection checkpoints, extra assert branches, and extra debug fields get baked into the production library. That's a much bigger behavioral change than "just make the new test compile." pls correct me if I misunderstand something.
There was a problem hiding this comment.
You are right. I added _PRERELEASE just to make this compile and run. Please suggest a better place/way to enable _PRERELEASE as I didn't really find how it is enabled in 7.x. I presume it is not the same as Debug build.
There was a problem hiding this comment.
@szmyd since we disable prerelease in eBay/sisl#278, do you have any sugestion on this ?
|
@szmyd @shosseinimotlagh Please if you can ensure the upgrade path and compatibility are properly discussed. NuObject is moving to V7 mostly to intake the folly and co-routine removal, which is still a persistent-compatible version (meaning , no data migration is needed upgrading from v6 to v7). With the potential path forward of this feature, it is unlikely to be compatible with v7 as of now. I would suggest it should be in V8 with proper feature bit. Also decisions regarding how V6 can upgrade to V8 should be discussed. |
It's my understanding that we only use v3 (NuBlox 1.x/2.0) and v7 (NuObject) at the moment. We're currently working on v8 for NuBlox 2.1; so where does v6 come into play? |
|
@szmyd sorry you are right, I mess up v7 vs v6.. Yes I am talking about v7 ->v8 compatibility |
There was a problem hiding this comment.
🟡 Changes recommended
Production cleanup is not wired into chunk release, and the build and test lifecycle contain blocking defects.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Introduces chunk-level WBC eviction primitives intended to prevent stale cache entries when index chunks are reused.
Changes:
- Adds allocated-block enumeration and WBC chunk eviction APIs.
- Adds a deterministic chunk-reuse regression test.
- Updates test helpers, build configuration, and package version.
File summaries
| File | Description |
|---|---|
conanfile.py |
Bumps version to 8.2.1. |
src/CMakeLists.txt |
Enables prerelease compilation. |
src/include/homestore/index/wb_cache_base.hpp |
Exposes chunk eviction API. |
src/lib/device/chunk.cpp |
Enumerates allocated blocks. |
src/lib/device/chunk.h |
Declares block enumeration. |
src/lib/index/wb_cache.cpp |
Implements chunk-wide eviction. |
src/lib/index/wb_cache.hpp |
Declares eviction override. |
src/tests/CMakeLists.txt |
Registers the regression test. |
src/tests/btree_helpers/btree_test_helper.hpp |
Makes flip arguments explicit arrays. |
src/tests/test_common/homestore_test_common.hpp |
Makes flip arguments explicit arrays. |
src/tests/test_index_chunk_selector.cpp |
Adds the chunk-reuse regression test. |
Review details
- Files reviewed: 11/11 changed files
- Comments generated: 4
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| target_link_libraries(homestore ${COMMON_DEPS}) | ||
| target_compile_definitions(homestore PRIVATE _PRERELEASE) |
JacksonYao287
left a comment
There was a problem hiding this comment.
thanks @nnastonen for this change, I have no more in put. @szmyd @shosseinimotlagh can you give some inputs?
| ${HOMESTORE_OBJECTS} | ||
| ) | ||
| target_link_libraries(homestore ${COMMON_DEPS}) | ||
| target_compile_definitions(homestore PRIVATE _PRERELEASE) |
There was a problem hiding this comment.
@szmyd since we disable prerelease in eBay/sisl#278, do you have any sugestion on this ?
1d2aef4 to
456213a
Compare
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev/v8.x #912 +/- ##
===========================================
Coverage ? 46.02%
===========================================
Files ? 111
Lines ? 12485
Branches ? 5882
===========================================
Hits ? 5746
Misses ? 3195
Partials ? 3544 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
90887fb to
ddf1ba3
Compare
ddf1ba3 to
7a7564c
Compare
This change makes chunk release asynchronous and defers returning the chunk to the free pool until cleanup is complete.
New flow:
This PR also addresses this ticket SDSTOR-25404