Commit Graph
57 Commits
Author SHA1 Message Date
Vitaliy Filippov 5afef7ca6d WIP Integrate LSMeta :-) 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 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 232e416658 Fix test build with isa-l 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 c980168d10 Fix a bs_read bug 2025-12-02 01:52:12 +03:00
Vitaliy Filippov dce4a6c37a Fix test dependencies 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 ce050e7eda Add a test for parallel reads with block checksums 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 7f4c541a6f Implement buffered disk_mock_t mode, extract ringloop_mock.cpp 2025-12-02 01:52:12 +03:00
Vitaliy Filippov ec5e93307d Add a basic mocked blockstore 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 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 cb45b1865d Extract multilist_alloc_t 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
Vitaliy Filippov 8ee7058ec8 Use an interface instead of explicit blockstore_t wrapper 2025-11-23 01:48:44 +03:00
Vitaliy Filippov d75b1cb2d2 Refactor some defines 2025-11-22 18:07:44 +03:00
Vitaliy Filippov a3c1996101 Do not accidentally clear incorrect osd_peer_fds entries 2025-06-05 02:22:13 +03:00
Vitaliy Filippov 2ab0ae3bc9 Check operation sequencing and stop clients when it breaks 2025-05-02 17:01:50 +03:00
Vitaliy Filippov 8508e78288 Add an alternative RDMA implementation via RDMA-CM
Required for non-RoCE cards: iWARP and, possibly, Infiniband
2025-03-31 21:01:25 +03:00
Vitaliy Filippov be22c363ca Do not skip client_retry_interval on reconnecting OSDs to prevent OSD spam 2025-03-20 00:12:38 +03:00
Vitaliy Filippov 263a3b5ad6 Rename allocator to allocator_t 2025-03-13 00:53:34 +03:00