-
Notifications
You must be signed in to change notification settings - Fork 24
gc remove local dir #414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
gc remove local dir #414
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,6 +55,7 @@ class IndexPageManager | |
| KvError MakeCowRoot(const TableIdent &tbl_ident, CowRootMeta &cow_meta); | ||
|
|
||
| void UpdateRoot(const TableIdent &tbl_ident, CowRootMeta new_meta); | ||
| void MarkManifestMissing(const TableIdent &tbl_ident); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Verify locking/serialization around MarkManifestMissing and RootMeta updates.
rg -n "IndexPageManager::MarkManifestMissing|RootMetaMgr::Find\\(|RootMetaMgr::UpdateBytes\\(|manifest_size_" include src -C3Repository: eloqdata/eloqstore Length of output: 9831 🏁 Script executed: # Find RootMetaMgr class definition with lock information
rg -n "class RootMetaMgr|mu_|lock_|mutex_|rwlock_" include/storage src/storage -B2 -A10 | head -100Repository: eloqdata/eloqstore Length of output: 4975 🏁 Script executed: # Check the full Find() implementation for any lock acquisition
sed -n '204,220p' src/storage/root_meta.cppRepository: eloqdata/eloqstore Length of output: 404 🏁 Script executed: # Check the full UpdateBytes() implementation
sed -n '250,270p' src/storage/root_meta.cppRepository: eloqdata/eloqstore Length of output: 502 🏁 Script executed: # Look for lock guards around MarkManifestMissing
sed -n '343,368p' src/storage/index_page_manager.cppRepository: eloqdata/eloqstore Length of output: 829 🏁 Script executed: # Get full RootMetaMgr class definition
sed -n '96,250p' include/storage/root_meta.hRepository: eloqdata/eloqstore Length of output: 3146 🏁 Script executed: # Search for all callers of MarkManifestMissing to see the call context
rg -n "MarkManifestMissing" include srcRepository: eloqdata/eloqstore Length of output: 351 🏁 Script executed: # Look for mutex or lock fields in root_meta files
rg -n "mu_|mutex_|lock_|rwlock_|RWLock" include/storage/root_meta.h src/storage/root_meta.cppRepository: eloqdata/eloqstore Length of output: 44 🏁 Script executed: # Get Pin/Unpin implementation
rg -n "void RootMetaMgr::Pin|void RootMetaMgr::Unpin" src/storage -A10Repository: eloqdata/eloqstore Length of output: 1245 🏁 Script executed: # Check context around MarkManifestMissing call in file_gc.cpp
sed -n '770,795p' src/file_gc.cppRepository: eloqdata/eloqstore Length of output: 665 🏁 Script executed: # Search for any synchronization around the GC operations
sed -n '750,800p' src/file_gc.cppRepository: eloqdata/eloqstore Length of output: 1412 Add synchronization to The implementation calls 🤖 Prompt for AI Agents |
||
|
|
||
| std::pair<MemIndexPage::Handle, KvError> FindPage(MappingSnapshot *mapping, | ||
| PageId page_id); | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: eloqdata/eloqstore
Length of output: 19467
Add synchronization for concurrent access to GC cleanup tracking structures.
RequestGcLocalCleanup()and the file cleaner background task accesspending_gc_cleanup_andpending_gc_cleanup_queue_without visible synchronization. Protect all accesses to these structures with a consistent lock, ensuring the insert→queue pair remains atomic.Also applies to: 1022-1023
🤖 Prompt for AI Agents