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
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
552ba5d885
B-tree is slower...
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
fb87870734
Support moving objects between blocks
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
92631bb6b3
Fix buffer overflow in test_heap
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
bcde273ca1
Test calc_checksums
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
87fe1bc00f
Check 2/3 blocks in test_recheck
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
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
2e4d5ae5bb
Return new_lsn from erase and rollback
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
0241a61412
Fix multilist_alloc_t bug, move verify and print to lib
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
3ba3eed0cf
Use the same "inflight" queue to track compaction
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b44c3a7971
Assign new LSN on stabilize
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
59b7b2e0c3
WIP Only save MVCC copy when overwriting an object
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
20bbeb4095
Prevent compaction of incomplete object writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
3c687a2993
Experimental INTENT_WRITE write mode with WA=2 instead of 3
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7530bdbec7
Add test_compact_block
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
f580cee936
Implement a really crazy "multi-linked-list" allocator for buffered data
2025-12-02 01:52:11 +03:00
Vitaliy Filippov
01ae800d34
Use linked lists in heap to avoid excessive memory copying
2025-12-02 01:52:11 +03:00
Vitaliy Filippov
8430104c19
"Heap" metadata storage scheme
2025-12-02 01:52:11 +03:00