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
94f3634602
Fix object crc32c calculation
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
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
c148f97ee4
Fix checksum validation in !inmemory_journal mode
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
4a0720a231
Fix checksum padding during flush
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
d4f7bbb412
Fix assert(region_marker) at the end of the block in find_block_run()
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e5e71fc21a
Fix assert(is_buffer_area_free) with size=0
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
23d5fec580
Remove assert !region_marker & FREE
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
30c5a79772
Fix bad resharding due to the lack of iteration order in a hashmap
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
8b35c09e12
Fix vitastor-disk prepare and param validation
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
2d7da127ad
Return all unstable versions in listing
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
712f22d6f8
Fix a bug with unstable_big over unstable_small
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
99bddb976a
Fix zero-length writes
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
aa1e62a502
Remove block_order parameter
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
a98aee7906
Fix loading for out-of-order lsns
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
353460cc83
Collapse intent_writes on other write types too
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
e0d2705294
Add 2 tests for intent writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
57d2f30303
Add a test with fsync
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
615e9d1274
Fix some blockstore bugs discovered by the mocked test!
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
bcde273ca1
Test calc_checksums
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
db14037ac8
Fix collapsing intent-over-intent checksums
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
64db505357
Allow 1 intent_write over big_write in fsync mode
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
f3048d0858
Allow multiple writes with the same version
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
714b0783bf
Add tests for intent writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
9063bcaa41
More tests for incorrect data cases
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
16dee7c136
Use ui32 for block sizes
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
49407afa17
Remove FIXMEs
2025-12-02 01:52:12 +03:00