Commit Graph
66 Commits
Author SHA1 Message Date
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 715e7df51f Use inflight_lsn iterators 2025-12-02 01:52:12 +03:00
Vitaliy Filippov ea5ee0c46f Free space on overwrites correctly 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 47bec8af47 Use fsynced_lsn in flusher 2025-12-02 01:52:12 +03:00
Vitaliy Filippov ec3bf4ae6c Correctly track fsynced_lsn when fsyncs are enabled 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 f656545f4a Check for overlaps during blockstore loading 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 0bc81f5320 Fix pending_ops 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 84961f6d0a Fix repeating cur_oid 2025-12-02 01:52:12 +03:00
Vitaliy Filippov cb085f9c8f Mark overwritten heap_writes as immediately compacted 2025-12-02 01:52:12 +03:00
Vitaliy Filippov a9773b1908 Move "ack write" debug message 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 11783a2d7a Fsync data on trim_lsn, not when writing compacted data 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 7915605609 Batch big_write data fsyncs 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 5dc0b42146 Use new LSNs on stabilize 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 7f0c78113b Do not use wr_offset 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 c78b4d184d Remove alloc_buffer_area 2025-12-02 01:52:12 +03:00
Vitaliy Filippov c7a6b77c21 Two more unordered_maps 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 3cb7ec69bc Remove sync_to_repeat map and use simpler repeating 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 954e7b658d Use a sequence of bitmap_allocs for metadata instead of std::sets... 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 2c6ea8a521 It seems tcmalloc is actually slower, disable it 2025-12-02 01:52:11 +03:00
Vitaliy Filippov bfd5575425 Use single add_used_space call instead of unmark+mark allocated_block 2025-12-02 01:52:11 +03:00
Vitaliy Filippov 85e61c9c31 Remove compact_queue_lsn map 2025-12-02 01:52:11 +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 6d0460500a Use linked list heap in blockstore code
WIP, still slower than the old version :-E
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 dbb885a6b1 v1 (old) store fixes for merged version 2025-12-02 01:52:11 +03:00
Vitaliy Filippov 8ff2c268f7 Integrate "heap" metadata storage into blockstore 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 3ad83e8d13 Use only space_left, not sqes_left 2025-11-23 15:17:57 +03:00
Vitaliy Filippov 5d3f3f47a7 Move all #defines to internal.h 2025-11-23 14:53:46 +03:00
Vitaliy Filippov 8ee7058ec8 Use an interface instead of explicit blockstore_t wrapper 2025-11-23 01:48:44 +03:00
Vitaliy Filippov 1badc6ad13 Remove include of blockstore_impl.h from disk_tool and osd 2025-11-23 01:48:44 +03:00
Vitaliy Filippov be1858848e Remove block_order and replace << >> by / * data_block_size 2025-11-22 18:10:32 +03:00
Vitaliy Filippov d75b1cb2d2 Refactor some defines 2025-11-22 18:07:44 +03:00
Flynn049andGitHub c164adb43c Fix: journal sector written flag not set when submitted (#109) 2025-11-07 00:59:04 +03:00
Vitaliy Filippov e3c8fd28b4 Allow to test EC writes with fio_blockstore 2025-09-27 14:12:24 +03:00
Vitaliy Filippov d87e7d1a37 Optimize WA - do not move to the next journal sector until the actual write 2025-09-27 11:23:05 +03:00
Vitaliy Filippov 2ebe3a468c Mark all symbols hidden by default, export only required ones 2025-08-24 16:55:58 +03:00
Vitaliy Filippov 0be86a306d Remove old liburing version support as it's now included 2025-08-24 16:55:58 +03:00
Vitaliy Filippov 9f57c75acf unordered_map flush_versions 2025-08-23 17:45:56 +03:00
Vitaliy Filippov 53b12641d1 Fix the fix :) 2025-08-23 17:45:56 +03:00
flynn.yangandVitaliy Filippov 5c5c8825dc Avoid multiple inflight overwrites to meta blocks
https://github.com/vitalif/vitastor/pull/83

By https://github.com/Flynn049

By submitting this pull request, I accept Vitastor CLA
2025-08-23 17:45:03 +03:00
Vitaliy Filippov feaf7a15cf Use CRC32C implementation from ISA-L when available - enables VPCLMULQDQ version with AVX512 which is ~2x faster 2025-08-10 18:03:47 +03:00