pedrocarlo
ff955aeee9
simplify clock code by using a common struct
2025-10-14 12:33:36 -03:00
Pere Diaz Bou
a7d2462c05
core/io/uring: fix inner usages
...
Yield is a completion that does not allocate any inner state. By design
it is completed from the start and has no errors. This allows lightly
yield without allocating any locks nor heap allocate inner state.
2025-10-07 12:05:54 +02:00
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