Vitaliy Filippov
b17691ba02
Add a redirect_intent write mode for non-capacitor SSDs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
eaff4509ca
Complete small/intent writes explicitly, not implicitly on metadata block write
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
944499135f
Reduce hashmap memory usage by 8 bytes per key :)
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
08f21edaf7
Fix enospc detection logic and test_enospc
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
856ad79a02
Fix mark_completed_lsns for enabled fsyncs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
378fff6f67
Write recheck_modified_blocks to disk
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
daf2cc3fb1
Validate objects on start
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
17d61c5868
Fix disk_tool for lsmeta
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e709657de4
Save completed_lsn in the superblock
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
3eecf9048c
Simplify compaction
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
1852caaeec
Implement even more simplified big_intent writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
852734270e
wip
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
8f92979a18
Move prev/next/block_num to struct heap_list_item_t
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b720af74c2
WIP experimental - double linked list
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
d3b171e047
FIXME
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7287b7fc25
Remove std::set meta_nearfull
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e1bb670491
Apply inflights in batches
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
1e5a01def8
Another experiment: store writes in mallocs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
ec8527c89d
Experimental: move prev_count to the map itself
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e512e1eeb1
LSMeta
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7ab60c00ab
Use 32-bit big write location (OK for up to 512 TB OSDs)
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
ac8e0ef231
Do not store offset & len in big_writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
2b8a9e3f90
Add entry_type to heap_object_t too
...
This is required to:
1) later inline the last "big_write" entry into the object to slightly reduce memory usage
2) eliminate an ugly hack where entry type is determined by its size
3) make the storage scheme extensible i.e. when adding new entry types
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
ef792608b0
Rename flags to entry_type
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
04531bcfbb
Use robin_hood::unordered_flat_map - it has 1 byte overhead instead of 8 byte
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
1b40fa1cee
Revert try_get
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
3ea9230ed0
WIP dump/load heap
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
97dfbfad75
Add missing list_stable_limit support
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
0ec4f1608a
Add a copy of wyhash
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
16881a3d6b
Use wyhash
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7cde5c75b9
Change emhashes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
4c32244409
unordered_map mvcc
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
6e856c2719
Use emhash::try_get
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
af710d3c65
Use emhash hashmap (2x faster)
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
8189c3a4ef
Use unordered_maps for object-block index
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
552ba5d885
B-tree is slower...
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
14bbf18ede
Unordered_map for pool settings
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
74b8ea1303
Fix skipping of corrupted objects, fix use_buffer_area with zero size
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b0809b33aa
Use multilist_index_t instead of multiple bitmap allocators
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
a1a449686a
Integrate moving objects
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
fb87870734
Support moving objects between blocks
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
38d5175f66
Add read_blocks() API
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
dcbdb0ae33
Extract (flags & BS_HEAP_TYPE) into a function
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
274f9ecda5
Add a test for "perfect_csum_update" mode
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
d4c465f786
Fix intent writes with padded checksums
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
adddf9b3b1
Remove extra unneeded read_entry-s
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
2e4d5ae5bb
Return new_lsn from erase and rollback
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
db458fc999
Allow to cancel compaction for unfinished writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
574520be0f
Fix space allocation & compaction on start
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
ea5ee0c46f
Free space on overwrites correctly
2025-12-02 01:52:12 +03:00