Commit Graph
48 Commits
Author SHA1 Message Date
Vitaliy Filippov 3df410acc7 Fix test_scrub with BIG_INTENTs 2025-12-02 01:52:12 +03:00
Vitaliy Filippov e55927076c Abort compaction if overwritten 2025-12-02 01:52:12 +03:00
Vitaliy Filippov c8f5b6cb19 Fix submitting forced fsyncs in flusher 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 25ce82a729 Fix checksum flushing for the case of empty small writes, fix checksum calculation skipping during read 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 4e0b203552 Fix iterate_compaction for commit with non-latest version 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 371e630f52 Recheck repeat using map 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 5afef7ca6d WIP Integrate 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 ef792608b0 Rename flags to entry_type 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 9db8748647 Remove unused bs->buffer_area + buffer calc 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 0cb0e31ceb Mark in-memory data reads as SKIP_CSUM 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 0703efd8b9 Add missing calc_crc32c after updating block checksums 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 99bddb976a Fix zero-length writes 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 dcbdb0ae33 Extract (flags & BS_HEAP_TYPE) into a function 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 b0b495a991 unaligned_intent does not need special handling anymore 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 7ea4884ef6 Disable punching block checksums and allow to enable it with a parameter 2025-12-02 01:52:12 +03:00
Vitaliy Filippov 3a96d41c93 Fsync & update metadata when block checksums are enabled 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 84961f6d0a Fix repeating cur_oid 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 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 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 3cb7ec69bc Remove sync_to_repeat map and use simpler repeating 2025-12-02 01:52:12 +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 8ff2c268f7 Integrate "heap" metadata storage into blockstore 2025-12-02 01:52:11 +03:00
Vitaliy Filippov 5d3f3f47a7 Move all #defines to internal.h 2025-11-23 14:53:46 +03:00
Vitaliy Filippov be1858848e Remove block_order and replace << >> by / * data_block_size 2025-11-22 18:10:32 +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 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 ca63cd507d Fix possible infinite loop in flusher (surprisingly reproduced in test_write.sh with iothreads) 2024-06-27 00:38:01 +03:00
Vitaliy Filippov c79b38bd26 Move all sources to subdirs 2024-05-15 11:06:01 +03:00