Vitaliy Filippov
d2ac8e3827
Fix block writeback on enospc during commit
2026-02-07 16:27:26 +03:00
Vitaliy Filippov
d6dacc67db
Do not return EBUSY when already stable in the new store
2026-02-07 16:10:39 +03:00
Vitaliy Filippov
cbe51595cb
Remove reshard_abort
2026-02-07 16:05:40 +03:00
Vitaliy Filippov
2618e559d1
Add rollback tests, simplify rollback logic
2026-02-07 15:09:58 +03:00
Vitaliy Filippov
037d2bc162
Add a test for recalc_inode_stats in the new store and fix a bug in it
2026-02-07 14:00:10 +03:00
Vitaliy Filippov
f0b64adb32
Fix removed inodes not disappearing from statistics in the new store
2026-02-07 02:48:49 +03:00
Vitaliy Filippov
f06d64d879
Fix validate_object commit validation bug
2026-02-06 18:52:37 +03:00
Vitaliy Filippov
725e9aa8ae
Remove unused read_locked_entry
2026-02-06 17:38:59 +03:00
Vitaliy Filippov
4fbe4b5654
Fix BIG_INTENT rechecks with enabled checksums
2026-02-04 02:33:50 +03:00
Vitaliy Filippov
9fb645693b
Fix checksums with BIG_INTENT writes in the new store
2026-02-04 02:33:50 +03:00
Vitaliy Filippov
9cc2beed95
Fix new compile warnings from merged PR
2026-01-30 00:47:58 +03:00
MoonBoi9001 and Vitaliy Filippov
fb1c870f5c
Fix: integer division bug with block_size < 32KB ( #113 )
...
Test scenarios:
- 128KB aligned I/O (may work despite bug)
- 4KB random I/O (triggers assertion failure)
- 4KB mixed read/write (triggers crash)
- 4KB sequential write (triggers crash)
I accept Vitastor CLA agreement: https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/CLA-en.md
2026-01-29 02:04:30 +03:00
Vitaliy Filippov
3f7f6f442b
Fix some compilation warnings
2026-01-29 02:00:25 +03:00
Vitaliy Filippov
2b801a7ffa
Support chunked resharding in blockstores
2026-01-25 01:56:29 +03:00
Vitaliy Filippov
73f9c7293f
Initialize blockstore after loading pool configuration to pre-shard the DB correctly on start
2026-01-23 01:45:13 +03:00
Vitaliy Filippov
ddd755a0e6
Fix incorrect checksums for small initial writes in the old store
...
Details:
- Write size should be exactly csum_block_size (4k by default)
- Write should be made into a new object (unallocated space)
- In this case, the checksum of the block was calculated as if the block was
padded with extra (2^32 - size) zero bytes due to a simple integer overflow
- As a cherry on the cake, such calculation was 'slightly' slow because it
was processing almost 4 GB of zeroes for a small write
2026-01-16 01:07:39 +03:00
Vitaliy Filippov
44eeb1ed13
Do not read incomplete intent writes
2025-12-21 11:49:56 +03:00
Vitaliy Filippov
934752d617
Add define RWF_DSYNC
2025-12-06 01:24:19 +03:00
Vitaliy Filippov
a5768a8ef6
Parse empty meta_format in superblock as v2 (fix updating from 2.x)
2025-12-02 01:52:42 +03:00
Vitaliy Filippov
8ffdb93ed3
Implement test_resize_auto for the new (lsm/heap) store
2025-12-02 01:52:42 +03:00
Vitaliy Filippov
615d4825c0
Remove FIXME
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e55ca26ff6
Reject all-zero blocks, mark empty space with a special entry type during init
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
abe093b9a3
Reserve for max_entry_size, not for min_entry_size
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
07e6eb0b16
Return no_inode_stats feature back
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
0eacce1e1d
Crazy shit: optimize inode maps for very small item counts (i.e. inodes with only 1-15 objects)
2025-12-02 01:52:12 +03:00
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
60fcb168fe
Fix assert
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b17691ba02
Add a redirect_intent write mode for non-capacitor SSDs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
f2cbe793e2
Fix intent_write_allowed check, add offset & len validation on start
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
0053546f8b
Remove zerofill in blockstore (an old and unused artifact)
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
959f792f82
Auto-guess atomic_write_size from /sys
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
eaff4509ca
Complete small/intent writes explicitly, not implicitly on metadata block write
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
04eefce30b
Fix recheck logging
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
746844d301
Add double-claim block check
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
944499135f
Reduce hashmap memory usage by 8 bytes per key :)
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
e9f0639e62
Fix iterate_compaction for the case of unfinished commit/rollback
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
b772a3cd04
Fix freeing repeated big_intents
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
856ad79a02
Fix mark_completed_lsns for enabled fsyncs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
39a8772d7f
Fix loading
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
378fff6f67
Write recheck_modified_blocks to disk
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
daf2cc3fb1
Validate objects on start
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
17d61c5868
Fix disk_tool for lsmeta
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