Vitaliy Filippov
c392e914e2
Do not block writes on previous writes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
249e04ac0d
Add atomic_write_size parameter
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
16dee7c136
Use ui32 for block sizes
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
adddf9b3b1
Remove extra unneeded read_entry-s
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
6a5044ae36
Do not recheck data location on intent-write
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
49407afa17
Remove FIXMEs
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
a00fc1bc24
Fsync after stabilizing
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
2e4d5ae5bb
Return new_lsn from erase and rollback
2025-12-02 01:52:12 +03:00
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
7530bdbec7
Add test_compact_block
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
4c11e3ad3d
Release 2.4.4
...
- Implement `vitastor-kv rescue` command which dumps all readable blocks from the
database regardless of the tree structure and allows to recover a corrupted database.
- Simplify primary OSD selection - use just PG number instead of the hash. This allows
to distribute primary OSDs more evenly and reach better read speeds.
- Fix vitastor-kv-stress hang on parallel list & reopen.
- Fix CAS writes without immediate_commit. Fix is sufficient for vitastor-kv to
operate correctly in non-immediate_commit pools.
- Fix NFS ACCESS calls for broken inodes (allow root access to them).
- Fix broken vitastor-kv-stress --runtime parameter.
- Fix bad vitastor-kv dump output buffering leading to incorrect JSON in dumps.
- Fix writing garbage from uninitialized memory to the empty space in VitastorKV DB.
- Refactor some code in preparation to the release of the new log-structured metadata store.
- Replace assert(done != expected) error message, probably caused by kernel issues with
zero-copy TCP send, with a more concise error description.
v2.4.4
2025-12-01 02:22:27 +03:00
Vitaliy Filippov
d88b49872b
Fix vitastor-kv-stress hang on parallel list & reopen
2025-11-30 16:54:23 +03:00
Vitaliy Filippov
ca27b91919
Handle CAS writes with built-in SYNC and without retries in the client
2025-11-30 14:50:50 +03:00
Vitaliy Filippov
94f31b96b8
Cancel block changes on write failures/CAS retries (should fix #115 )
2025-11-30 01:49:49 +03:00
Vitaliy Filippov
76c7c26d32
Fix broken inode removal again (ACCESS will now allow root access to such inodes)
2025-11-29 19:30:20 +03:00