Vitaliy Filippov
bc0aa48bc7
Batch handle_immediate_ops more
2026-04-04 19:01:50 +03:00
Vitaliy Filippov
0b32d76f75
Add basic AES-XTS client-side encryption support
2026-04-04 19:01:49 +03:00
Vitaliy Filippov
67132a29ae
Rework msgr send/receive to allow encryption support
2026-04-04 19:01:49 +03:00
Vitaliy Filippov
07915c2881
Use surrogate peer IDs instead of FDs
2026-03-30 02:06:10 +03:00
Vitaliy Filippov
f7cbb6ed56
Remove FD from the event loop in destroy_client, not in stop_client
2026-03-28 14:18:20 +03:00
Vitaliy Filippov
8f8172db99
clear_immediate_ops is now done by stop_client
2026-03-26 01:08:23 +03:00
Vitaliy Filippov
44c895dc30
Fix clients possibly not destroyed after being switched to RDMA
...
It could in theory lead to hung operations on RDMA client disconnections.
Workflow (probable):
* OSD switches an outbound connection to PEER_RDMA and removes the FD from epoll
* But a receive request in io_uring is still active
* Receive response is never handled, refs remains > 0
* The connection is dropped, but osd_client_t is not destroyed because refs > 0
* Outbound ops are not canceled, suboperations hang, primary operations hang too
2026-03-17 01:04:17 +03:00
Vitaliy Filippov
310c512b43
Correctly delete handle_immediate_ops when stopping a client
...
Fixes map::at crash in some cases
2026-03-02 01:48:19 +03:00
ston3lu and Vitaliy Filippov
dd588a0783
Fix ref leak on read path when SQE allocation fails
...
I accept Vitastor CLA agreement: https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/CLA-en.md
2026-01-29 01:52:07 +03:00
Vitaliy Filippov
52bc3261e9
Do not attempt to free outbound ops in clear_immediate_ops ( fix #88 )
2025-09-17 12:22:48 +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
f0a025428e
Postpone read/write handlers using timerfd in the debug use_sync_send_recv mode
2025-06-05 02:22:01 +03:00
Vitaliy Filippov
f390e73dae
Log broken sequence numbers in "sequencing" errors
2025-06-05 02:09:41 +03:00
Vitaliy Filippov
4afb617f59
Also zero-init sqe
2025-05-23 21:18:37 +03:00
Vitaliy Filippov
2b0a802ea1
Fix iothreads sometimes hanging after adding zerocopy support
2025-05-23 20:54:03 +03:00
Vitaliy Filippov
2ab0ae3bc9
Check operation sequencing and stop clients when it breaks
2025-05-02 17:01:50 +03:00
Vitaliy Filippov
9fa8ae5384
Reset OSD ping state on receiving data from it via RDMA
2025-04-26 14:17:09 +03:00
Vitaliy Filippov
c312557ace
Do not execute remaining operations if the client is stopped during read
2024-11-10 16:44:13 +03:00
Vitaliy Filippov
9f38b7e5c1
Fix osd_ping_time_remaining reset from 990c3ba7eb, leading to osd disconnections
2024-07-13 16:09:56 +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
c79b38bd26
Move all sources to subdirs
2024-05-15 11:06:01 +03:00