Pekka Enberg
2131a04b7d
core: Rename IO::run_once() to IO::step()
...
The `run_once()` name is just a historical accident. Furthermore, it now
started to appear elsewhere as well, so let's just call it IO::step() as we
should have from the beginning.
2025-09-10 14:36:02 +03:00
PThorpe92
ccae3ab0f2
Change callsites to cancel any further IO when an error occurs and drain
2025-09-08 13:18:40 -04:00
PThorpe92
a750505762
Impl cancel and drain methods for io_uring
2025-09-08 13:18:38 -04:00
PThorpe92
d894a62132
Add plumbing in io_uring to handle linked writes to ensure consistency
2025-09-03 16:01:16 -04:00
PThorpe92
c5b6df4249
Use mutex in place of spinlock for io_uring
2025-09-03 11:12:33 -04:00
PThorpe92
30454336a6
Make io_uring sound for connections across multiple threads
2025-09-03 10:54:42 -04:00
PThorpe92
a0e5536360
Fix clippy warnings and remove self casts
2025-08-28 09:45:19 -04:00
PThorpe92
0a56d23402
Use u64 for file offsets in IO and calculate such offsets in u64
2025-08-28 09:44:00 -04:00
Nikita Sivukhin
c771487933
add remove_file method to the IO
2025-08-21 14:51:02 +04:00
pedrocarlo
4dca1c00db
fix merge conflict
2025-08-19 10:48:21 -03:00
pedrocarlo
71ca221390
clippy
2025-08-19 10:48:21 -03:00
pedrocarlo
fadf78fe67
use a dedicated Error enum for Completion Error
2025-08-19 10:48:21 -03:00
pedrocarlo
7bc0545442
default impl for get_memory_io
2025-08-19 10:48:21 -03:00
pedrocarlo
d5a59c6bee
default impl for generate_random_number
2025-08-19 10:48:21 -03:00
pedrocarlo
f72bcbc5da
default impl for wait_for_completion + check for errors in completion there
2025-08-19 10:48:21 -03:00
PThorpe92
ec4bf19fc7
Gracefully handle submission queue overflow in io_uring backend
2025-08-13 12:07:41 -04:00
PThorpe92
213d589dd1
Apply review suggestions, remove FreeEntry
2025-08-08 11:07:29 -04:00
PThorpe92
faf248df03
Add more docs and comments for TempBufferCache
2025-08-08 10:55:28 -04:00
PThorpe92
d7e4ba21f8
Add explanation for using 3mb limit
2025-08-08 10:55:28 -04:00
PThorpe92
66964fd8d2
Add documentation and comments to new buffer pool, add get_frame api
2025-08-08 10:55:28 -04:00
PThorpe92
d94e252ef9
Actually pre-register two arenas with the ring
2025-08-08 10:55:28 -04:00
PThorpe92
39d230a899
Add bitmap for tracking pages in arena
2025-08-08 10:55:27 -04:00
PThorpe92
fd09fe1237
Adjust io_uring to register two arenas, one for frames and the other for db pages
2025-08-08 10:55:27 -04:00
PThorpe92
9d1ca1c8ca
Add ReadFixed/WriteFixed opcodes for buffers from registered arena
2025-08-08 10:55:27 -04:00
PThorpe92
f6a68cffc2
Remove RefCell from IO and Page apis
2025-08-05 16:24:49 -04:00
PThorpe92
b76ef20f4c
Attempt to coalesce contiguous iovecs during pwritev operation for io_uring
2025-08-04 16:18:05 -04:00
PThorpe92
b8ed4358f1
register buffers sparse on ring initiate to support fixed operations
2025-08-01 14:56:43 -04:00
PThorpe92
9289dd7e9a
Implement register_fixed_buffer for io_uring IO backend
2025-08-01 14:55:35 -04:00
PThorpe92
693b71449e
Clean up writev batching and apply suggestions
2025-07-30 19:42:53 -04:00
PThorpe92
ef69df7258
Apply review suggestions
2025-07-30 19:42:53 -04:00
PThorpe92
73882b97d6
Remove unnecessary collecting CQEs into an array in run_once, comments
2025-07-30 19:42:53 -04:00
PThorpe92
efcffd380d
Clean up io_uring writev implementation, add iovec and cqe cache
2025-07-30 19:42:52 -04:00
PThorpe92
689007cb74
Remove unrelated io_uring changes
2025-07-30 19:42:52 -04:00
PThorpe92
0f94cdef03
Fix io_uring pwritev to properly handle partial writes
2025-07-30 19:42:50 -04:00
PThorpe92
88445328a5
Handle partial writes for pwritev calls in io_uring and fix JS bindings
2025-07-30 19:42:50 -04:00
PThorpe92
7b2163208b
batch backfilling pages when checkpointing
2025-07-30 19:42:48 -04:00
PThorpe92
2c3a9fe5ef
Finish wal transaction handling and add more wal and chkpt testing
2025-07-30 14:10:10 +03:00
PThorpe92
8ec99a9143
Remove assert for !NO_LOCK_HELD, properly handle writing header if reset
2025-07-30 14:08:51 +03:00
PThorpe92
9c75872827
Make writing wal header able to be sync
2025-07-30 14:05:18 +03:00
PThorpe92
dcf346b9b0
Update apparently very old branch to new api
2025-07-30 13:48:05 +03:00
PThorpe92
3be8bb374d
Use usize for truncate method in place of u64
2025-07-30 13:48:05 +03:00
PThorpe92
fa002cba59
Impl truncate method for io_uring IO
2025-07-30 13:48:05 +03:00
pedrocarlo
d30c7d54c8
change all Arc<Completion> to Completion
2025-07-28 15:32:45 -03:00
PThorpe92
735026b502
Use Arc pointer for user data and save indirection when processing sqe/cqes
2025-07-26 16:35:40 -04:00
Jussi Saurio
9722aab8a1
clappy
2025-07-18 11:01:57 +03:00
Jussi Saurio
347a9152a6
Merge 'Replace verbose IO Completion methods with helpers' from Preston Thorpe
...
one of the last remnants of some original verbosity
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2156
2025-07-18 10:52:17 +03:00
PThorpe92
a0a948101d
Last cleanups of old completion api
2025-07-17 23:47:43 -04:00
pedrocarlo
dc5f73887e
refactor to require Arc<Completion> in file traits so that we can delay IO calls correctly
2025-07-17 12:24:43 -03:00
PThorpe92
ad2ae3e22f
Use fallback to regular fd if file registration is unavailable in io_uring
2025-07-16 23:08:46 -04:00
PThorpe92
fb78cdade0
Increase ring size from 128 -> 512
2025-07-16 22:44:20 -04:00