Ramananeesh/issue15 switch atomic counters to fast path metadata instead of prev#17
Merged
ramananeesh merged 15 commits intomainfrom Jul 21, 2025
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new atomic counter approach for the ConcurrentQuITBTree implementation by creating a second atomic version (ConcurrentQuITBTreeAtomic2) that switches from using previous node metadata to fast path metadata for atomic operations. The implementation aims to improve concurrency performance by refining how fast path metadata is managed atomically.
- Created ConcurrentQuITBTreeAtomic2 as a new atomic tree implementation variant
- Refactored atomic counter management to use fast path metadata instead of previous node metadata
- Updated build configuration and analysis tools to support the new tree variant
Reviewed Changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tree_analysis.cpp | Added support for the new FOR_CONCURRENT_QUIT_ATOMIC2 preprocessor definition |
| src/include/trees/ConcurrentQuITBTreeAtomic2.hpp | New complete implementation of the atomic2 variant with fast path metadata approach |
| src/include/trees/ConcurrentQuITBTreeAtomic.hpp | Modified to move fp_sorted from standalone atomic to part of fast_path_metadata struct |
| src/include/trees.hpp | Added include for the new ConcurrentQuITBTreeAtomic2 header |
| src/CMakeLists.txt | Added build target for concurrent-quit-atomic2 tree type |
| src/include/utils/executor.hpp | Changed debug output from logging to cerr for missing keys |
| results/analysis/analysis.ipynb | Updated analysis filter to focus on concurrent_quit_appends variant |
| config.toml | Changed NUM_THREADS from 16 to 2 |
| CMakeLists.txt | Added DEBUG flag to debug build configuration |
| .vscode/settings.json | Added comprehensive C++ file associations for IDE support |
| .vscode/launch.json | Added debug launch configuration for the new atomic2 variant |
Comments suppressed due to low confidence (1)
src/include/trees/ConcurrentQuITBTreeAtomic2.hpp:55
- The concurrent flag is set to false for a class named 'ConcurrentQuITBTreeAtomic2', which is misleading. This should likely be true or the naming should be reconsidered.
static constexpr const bool concurrent = false;
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.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.
No description provided.