Repository navigation
Fixed 2 issues: Memory resource not released and flushing of non-dirty pages - #24
Open
alicia-lyu wants to merge 2 commits into
Open
alicia-lyu wants to merge 2 commits into
alicia-lyu wants to merge 2 commits into
Conversation
lamduynguyen
reviewed
Oct 3, 2024
| ~CRManager(); | ||
| // ------------------------------------------------------------------------------------- | ||
| void registerMeAsSpecialWorker(); | ||
| void deleteSpecialWorker(); |
Collaborator
There was a problem hiding this comment.
Why do you need this?
Author
There was a problem hiding this comment.
The memory for the special worker is not released. It does not pass address sanitizer.
| // ------------------------------------------------------------------------------------- | ||
| inline bool isDirty() const { return page.PLSN != header.last_written_plsn; } | ||
| inline bool isDirty() const { return | ||
| page.PLSN != 0 && // marked as dirty |
Collaborator
There was a problem hiding this comment.
PLSN will increase monotonically and will be increased here:
https://github.com/leanstore/leanstore/blob/master/backend/leanstore/sync-primitives/PageGuard.hpp#L122C1-L127C23
That means, your first condition is inclusive with page.PLSN != header.last_written_plsn
Author
There was a problem hiding this comment.
If the page is only read but not written, it should not be flushed. My experiments also see write volume for read-only workload.
alicia-lyu
added a commit
to alicia-lyu/leanstore
that referenced
this pull request
May 3, 2026
…varying-param harness) - §3.5 §4: add three-framing cardinality typology (pure hierarchical / hierarchical + sibling sub-aggregate / genuine tree); cross-ref anti-pattern leanstore#27 - §3.5 §5: add required "Params baked in" column + soundness rule forbidding parameterised-filter baking in secondaries - §3.5 §7: add explicit no-parameterised-filter bullet - §3.5 §8: add composition-with-sibling-queries guidance (DRY, not inheritance) - §3.6: add set_params_for_iter param-cycling hook requirement to skeleton - §5: replace brief Params blurb with deterministic param-table requirement + why-required rationale (Q3I pre_revenue bug) - §7.3: rewrite S2 around per-lineitem view (post-audit shape); remove obsolete baked-filter pitfall - §7.4: rewrite S5 around rebuilt 3-type aCOLI; retire [SKIP S5] guard; correct spectrum-position framing - §10: add off-default param verification subsection - §13: retire row leanstore#10 (fix was the bug); add rows leanstore#24-leanstore#27 (baked param, fixed-param loop, [SKIP] guard, cardinality framing) - §14: add off-default param checklist item Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
alicia-lyu
added a commit
to alicia-lyu/leanstore
that referenced
this pull request
May 18, 2026
…varying-param harness) - §3.5 §4: add three-framing cardinality typology (pure hierarchical / hierarchical + sibling sub-aggregate / genuine tree); cross-ref anti-pattern leanstore#27 - §3.5 §5: add required "Params baked in" column + soundness rule forbidding parameterised-filter baking in secondaries - §3.5 §7: add explicit no-parameterised-filter bullet - §3.5 §8: add composition-with-sibling-queries guidance (DRY, not inheritance) - §3.6: add set_params_for_iter param-cycling hook requirement to skeleton - §5: replace brief Params blurb with deterministic param-table requirement + why-required rationale (Q3I pre_revenue bug) - §7.3: rewrite S2 around per-lineitem view (post-audit shape); remove obsolete baked-filter pitfall - §7.4: rewrite S5 around rebuilt 3-type aCOLI; retire [SKIP S5] guard; correct spectrum-position framing - §10: add off-default param verification subsection - §13: retire row leanstore#10 (fix was the bug); add rows leanstore#24-leanstore#27 (baked param, fixed-param loop, [SKIP] guard, cardinality framing) - §14: add off-default param checklist item Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Fixed 2 issues:
BufferFrame::isDirty()flushes page withPLSN == 0, which are not modified, I believe. With the original code, experiments recovered from existing DB with read-only TXs witness page writes consistently above zero.The fixed code passes multiple runs of various experiments, including persisting and recovering (& verifying). But I would still appreciate a set of fresh eyes, especially because the changes are cherrypicked from my branch.