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
PThorpe92
4d09f1ab65
Enable coop_taskrun flag to disable excessive interrupts for completions
2025-07-16 22:43:44 -04:00
PThorpe92
95c343586c
Enable single_issuer flag for io_uring to signal submissions from single thread
2025-07-16 22:42:40 -04:00
PThorpe92
9dfadf7872
Add registered file descriptors to io_uring IO module
2025-07-16 22:41:47 -04:00
Nils Koch
1a91966c7e
fix clippy errors for rust 1.88.0 (manual fix)
2025-07-12 18:58:55 +03:00
pedrocarlo
1dc28e32f0
fix io_uring completion + clippy
2025-06-26 22:17:28 -03:00
pedrocarlo
bac5e4b563
refactor File and Database Storage to remove Arc<Connection> and return Arc<Connection> for caller to wait for completion
2025-06-26 22:17:28 -03:00
pedrocarlo
64d9193e7b
refactor Completion to have a type field and lift common is_complete property
2025-06-26 22:17:27 -03:00
Pekka Enberg
05df548b10
core/io: Add wait_for_completion() to I/O dispatcher
2025-05-27 13:47:40 +03:00
Pekka Enberg
eca9a5b703
core/io: Switch to Arc<Completion>
2025-05-27 11:28:49 +03:00
pedrocarlo
0c22382f3c
shared lock on file and throw ReadOnly error in transaction
2025-05-02 16:30:48 -03:00
Diego Reis
09d83aadf3
Fix dumb conflict errors
2025-04-13 11:10:06 -03:00
Diego Reis
d9bf383507
core/io: Untie MemoryIO's lifetime of the IO layer
2025-04-13 11:10:06 -03:00
Diego Reis
b519509349
core/io: Add internal in-memory MemoryIO to all IO layers
...
Honestly I don't have 100% sure if this is a good idea, the reasoning is that in any IO we'll want to do memory only operations like creating tables etc, so may want a common way to access it
2025-04-13 11:10:05 -03:00
Avinash Sajjanshetty
2873c36b31
Implement trait Clock for implemented IOs
...
Replace `chrono::Local::now()` to return `Instant` but containing
same info
2025-04-06 23:34:13 +05:30
Daniel Boll
fc50609491
Fix io_uring WAL write corruption by ensuring buffer lifetime
...
Ensure the Arc<RefCell<Buffer>> in UringFile::pwrite remains alive until
the io_uring write completes by referencing it in the completion callback.
This prevents WAL file corruption where the correct buffer data was
overwritten with stale memory (e.g., 00 18 27 xx instead of 37 7f 06 82).
Validation:
- Tested with limbo -v io_uring and WAL operations.
- Verified with xxd and wal-browser.
Signed-off-by: Daniel Boll <danielboll.academico@gmail.com >
2025-03-19 23:55:43 -03:00
Pere Diaz Bou
d1c7d758c4
fix uring Sync,Sync unsafe impl
2025-03-05 14:07:48 +01:00