Vitaliy Filippov
eb3df895e0
WIP refactor dequeue_write/continue_write into a single "coroutine"
2026-02-03 03:03:20 +03:00
Vitaliy Filippov
2b801a7ffa
Support chunked resharding in blockstores
2026-01-25 01:56:29 +03:00
Vitaliy Filippov
44eeb1ed13
Do not read incomplete intent writes
2025-12-21 11:49:56 +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
e55927076c
Abort compaction if overwritten
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
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
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
Vitaliy Filippov
7b40561141
Fix GC and loading
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
852734270e
wip
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
8f92979a18
Move prev/next/block_num to struct heap_list_item_t
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b720af74c2
WIP experimental - double linked list
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
96df2966cc
Reserve block entries
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7287b7fc25
Remove std::set meta_nearfull
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e1bb670491
Apply inflights in batches
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
1e5a01def8
Another experiment: store writes in mallocs
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
82f5fb7edd
Remap without intermediate hashmap
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
ec8527c89d
Experimental: move prev_count to the map itself
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e512e1eeb1
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
94f3634602
Fix object crc32c calculation
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
2b8a9e3f90
Add entry_type to heap_object_t too
...
This is required to:
1) later inline the last "big_write" entry into the object to slightly reduce memory usage
2) eliminate an ugly hack where entry type is determined by its size
3) make the storage scheme extensible i.e. when adding new entry types
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
1b40fa1cee
Revert try_get
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
3ea9230ed0
WIP dump/load heap
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
97dfbfad75
Add missing list_stable_limit support
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
4a0720a231
Fix checksum padding during flush
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
d4f7bbb412
Fix assert(region_marker) at the end of the block in find_block_run()
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
e5e71fc21a
Fix assert(is_buffer_area_free) with size=0
2025-12-02 01:52:12 +03:00