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
Vitaliy Filippov
8aa2c49202
Use immediate_commit in test_nfs
2025-11-29 19:22:01 +03:00
Vitaliy Filippov
0f330b10f1
Add kv-stress test to CI
2025-11-29 16:48:38 +03:00
Vitaliy Filippov
477b54a0d8
Fix broken vitastor-kv-stress --runtime parameter
2025-11-29 16:47:13 +03:00
Vitaliy Filippov
5823a7de66
Disable K/V DB operation on non-immediate_commit pools (unsafe because of broken CAS)
2025-11-29 16:43:46 +03:00
Vitaliy Filippov
eb0deaa3f5
Implement vitastor-kv rescue command
2025-11-29 16:34:34 +03:00
Vitaliy Filippov
59e6527303
Fix dump buffering, do not write uninitialized memory to the end K/V blocks on serialize
2025-11-29 16:34:34 +03:00
Vitaliy Filippov
67ba9f9b7c
Simplify primary OSD selection - use just PG number instead of the hash
2025-11-28 16:38:55 +03:00
Vitaliy Filippov
3ad83e8d13
Use only space_left, not sqes_left
2025-11-23 15:17:57 +03:00