Vitaliy Filippov
4c34a47179
Fix str_replace
2026-03-19 01:19:29 +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
e512e1eeb1
LSMeta
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
04531bcfbb
Use robin_hood::unordered_flat_map - it has 1 byte overhead instead of 8 byte
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
0ec4f1608a
Add a copy of wyhash
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
7f4c541a6f
Implement buffered disk_mock_t mode, extract ringloop_mock.cpp
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
b599334c4a
Add mocks for blockstore integration tests: timerfd, ring_loop_mock_t and disk_mock_t
2025-12-02 01:52:12 +03:00
Vitaliy Filippov
8430104c19
"Heap" metadata storage scheme
2025-12-02 01:52:11 +03:00
Vitaliy Filippov
3ad83e8d13
Use only space_left, not sqes_left
2025-11-23 15:17:57 +03:00
Vitaliy Filippov
d75b1cb2d2
Refactor some defines
2025-11-22 18:07:44 +03:00
Vitaliy Filippov
c8cc17dbe9
Fix tv_nsec == 1000000000 case in timerfd_manager ( #99 )
2025-10-27 20:57:29 +03:00
Vitaliy Filippov
d228fbfb68
Fix ipv6 port parsing in addr_util
2025-10-08 01:30:00 +03:00
Vitaliy Filippov
552f28cb3e
Fix #86 - base64_decode on arm64 O_o
2025-08-30 02:27:05 +03:00
Vitaliy Filippov
31b7021330
Implement Vitastor ublk server
2025-08-24 16:55:58 +03:00
Vitaliy Filippov
2ebe3a468c
Mark all symbols hidden by default, export only required ones
2025-08-24 16:55:58 +03:00
Vitaliy Filippov
9892fccfb0
Disable io_uring waits being reported as iowait
2025-08-24 16:55:58 +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
feaf7a15cf
Use CRC32C implementation from ISA-L when available - enables VPCLMULQDQ version with AVX512 which is ~2x faster
2025-08-10 18:03:47 +03:00
Vitaliy Filippov
29dda5066f
Stop doing cpuid repeatedly in runtime
2025-08-10 18:03:22 +03:00
Vitaliy Filippov
1de53ef7e6
Move crc32c_pad to util/crc32c.c
2025-08-10 18:03:17 +03:00
Vitaliy Filippov
f201ecdd51
Fix missing mutex unlock with zero-copy and iothreads O_o
2025-05-24 00:56:31 +03:00
Vitaliy Filippov
b7322a405a
Move gethostname_str to utils
2025-05-05 02:16:06 +03:00
Vitaliy Filippov
80c4e8c20f
Add missing wakeup in ringloop->set_immediate to prevent slowdowns in code using set_immediate
2025-05-03 14:40:48 +03:00
Vitaliy Filippov
9556eeae45
Implement io_uring zero-copy send support
2025-05-01 18:47:10 +03:00
Vitaliy Filippov
f32dea02bf
Support multiple RDMA networks
2025-03-31 21:01:25 +03:00
Vitaliy Filippov
a103065d12
Support multiple OSD networks and separate OSD cluster network
2025-03-31 21:01:15 +03:00
Vitaliy Filippov
263a3b5ad6
Rename allocator to allocator_t
2025-03-13 00:53:34 +03:00
Vitaliy Filippov
8129a0b4e3
Loop once after registering eventfd to prevent skipping previous events
2025-03-03 00:57:00 +03:00
Vitaliy Filippov
704c87d512
Trigger initial epoll when adding an FD
2025-03-03 00:56:17 +03:00
Vitaliy Filippov
0e6bf66734
Add bindiff for tests
2025-01-02 19:59:04 +03:00
Vitaliy Filippov
7de38250ad
Auto-select RDMA device based on osd_network
2024-11-16 18:38:57 +03:00
Vitaliy Filippov
5ce20116d8
Postpone trigger_nearest to prevent timer callbacks called from setTimer/clearTimer
2024-11-10 15:51:16 +03:00
Vitaliy Filippov
a03508320e
Move json_is_true/json_is_false to json_util.cpp
2024-10-12 00:40:39 +03:00
Vitaliy Filippov
c5a58c2e81
Support reading parameters automatically from the superblock in vitastor-disk {dump,write}-{meta,journal}
2024-10-07 02:21:58 +03:00
Vitaliy Filippov
6e9307c522
Fix possible overflow in is_zero()
2024-09-21 13:40:10 +03:00
Vitaliy Filippov
986cd11705
Implement CLI "dd" command - copy data between Vitastor images, files and pipes
2024-08-30 02:31:06 +03:00
Vitaliy Filippov
990c3ba7eb
Implement FS defragmentation
2024-07-12 16:11:35 +03:00
Vitaliy Filippov
abbba6ade4
Support handling TCP I/O in simple separate io_uring-based I/O threads
...
Required mainly for clients, allows to scale parallel client I/O with TCP
from 100-150k iops to ~400k iops and from 2-3 GB/s to at least 7-8 GB/s
with 4 I/O threads, at the same time increasing Q=1 latency by 2x thread
switching delay, which is ~10 us when CPU powersaving is disabled and may
be as high as 200 us when it's enabled.
2024-07-04 13:29:20 +03:00
Vitaliy Filippov
4c2328eb13
Implement ls-osd command
2024-06-17 02:22:14 +03:00
Vitaliy Filippov
c79b38bd26
Move all sources to subdirs
2024-05-15 11:06:01 +03:00