pedrocarlo
ff955aeee9
simplify clock code by using a common struct
2025-10-14 12:33:36 -03:00
FHaggs
af35f6534d
Fix: Calculate right buff len in the case of the first buffer in
...
try_pwritev_raw.
2025-10-03 18:46:16 +02:00
Charly Delaroche
5856dc8733
core/storage: Apple platforms support
2025-10-01 09:59:22 -07:00
pedrocarlo
e5dfc942b1
remove some unnecessary unsafe impls
2025-09-21 13:29:59 -03:00
PThorpe92
6098bca211
Handle partial writes in unix IO for pwrite and pwritev
2025-09-12 18:13:02 -04: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
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
Pekka Enberg
bf7f80a937
core/io: Switch Unix I/O to use libc::pwrite()
...
We use libc elsewhere for fault injection reasons, so let's do this
call-site too.
2025-08-27 17:56:23 +03:00
rajajisai
9068a29380
Use unsafe block
2025-08-24 18:56:05 -04:00
rajajisai
84d20ba60f
Use F_FULLSYNC in darwin based operating systems
2025-08-24 18:45:46 -04:00
Jussi Saurio
14873c76fb
unixio: use Mutex::lock() instead of Mutex::try_lock()
...
we should wait to obtain the lock, not immediately fail if we cant.
2025-08-22 10:47:50 +03:00
Pekka Enberg
ae8b1eb00d
Merge 'core/io: Don't open file as non-blocking in Unix backend' from Pekka Enberg
...
The Unix backend is a syscall()-based, blocking implementation. The
O_NONBLOCK adds nothing.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2708
2025-08-21 19:13:39 +03:00
Pekka Enberg
ce8b4c20f6
core/io: Don't open file as non-blocking in Unix backend
...
The Unix backend is a syscall()-based, blocking implementation. The
O_NONBLOCK adds nothing.
2025-08-21 14:43:00 +03:00
Nikita Sivukhin
c771487933
add remove_file method to the IO
2025-08-21 14:51:02 +04:00
Pekka Enberg
9233f48e08
core/io: Switch Unix I/O operations to use libc
...
We need it for LD_PRELOAD fault injection to work.
2025-08-20 13:43:47 +03:00
pedrocarlo
f27d4d14f2
remove polling code in UnixIO so we can implement it correctly later and so we do not fool ourselves that we have any async code there that actually runs
2025-08-20 01:36:08 -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
f6a68cffc2
Remove RefCell from IO and Page apis
2025-08-05 16:24:49 -04:00
PThorpe92
2a3fa0955f
Attempt to coalesce contiguous iovecs during pwritev operation for unix IO
2025-08-04 16:18:19 -04:00
PThorpe92
b5117ac5c7
Use pwrite for single buffer in unix IO
2025-08-02 18:34:16 -04:00
PThorpe92
ef69df7258
Apply review suggestions
2025-07-30 19:42:53 -04:00
PThorpe92
7b2163208b
batch backfilling pages when checkpointing
2025-07-30 19:42:48 -04:00
PThorpe92
8806b77d26
Clear snapshot and readmark/lock index flags on failure
2025-07-30 14:09:18 +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
ce1897cb4a
Impl truncate for the remainder of IO modules
2025-07-30 13:48:05 +03:00
pedrocarlo
d30c7d54c8
change all Arc<Completion> to Completion
2025-07-28 15:32:45 -03:00
Pere Diaz Bou
f458f622a5
io/unix: wrap file with Mutex
2025-07-28 11:33:57 +02:00
Glauber Costa
a10d8d7f94
silence clippy errors with features disabled
...
When compiling with features disabled, there are lots of clippy
warnings. This PR silences them.
For the utils file, I am using a bit of a hammer and just allowing
unused stuff in the whole file. Due to the box of utilities nature of
this file, it'll always be the case that things will be unused depending
on the feature-set.
2025-07-22 20:37:45 -05:00
Jussi Saurio
7e1755ac6f
Merge 'Use pread and pwrite in run_once' from Ihor Andrianov
...
pread and pwrite is usually less instructions then seek and read. Also
added possibility for io to retry if AGAIN error happens. And made write
to wait for Event::writable
Reviewed-by: Preston Thorpe (@PThorpe92)
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #2010
2025-07-18 10:48:26 +03:00
pedrocarlo
c15f1e02d3
make most instrumentation levels to be Debug or Trace instead. Span creation in debug mode is very slow and impacts our ability to run the Simulator fast enough
2025-07-17 16:48:24 -03: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
Pere Diaz Bou
340391538a
io: change comment for assert
2025-07-14 10:36:06 +02:00
Pere Diaz Bou
88ff218810
io: assert small I/O
...
Let's assert **for now** that we do not read/write less bytes than
expected. This should be fixed to retrigger several reads/writes if we
couldn't read/write enough but for now let's assert.
2025-07-14 10:19:41 +02:00
Nils Koch
828d4f5016
fix clippy errors for rust 1.88.0 (auto fix)
2025-07-12 18:58:41 +03:00
Ihor Andrianov
1100312354
use removed cb to complete copletion
2025-07-09 17:16:22 +03:00
Ihor Andrianov
2d41791f3d
clippy
2025-07-09 00:07:33 +03:00
Ihor Andrianov
f81bfa3daf
use pread and pwrite for unix io
2025-07-09 00:07:25 +03:00
pedrocarlo
b85687658d
change instrumentation level to INFO
2025-07-07 11:53:45 -03:00
pedrocarlo
46f59e4f0f
add more instrumentation + add faults to shrunk plan
2025-07-07 11:53:45 -03:00
pedrocarlo
5559c45011
more instrumentation + write counter should decrement if pwrite fails
2025-07-07 11:50:21 -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
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
d9bf383507
core/io: Untie MemoryIO's lifetime of the IO layer
2025-04-13 11:10:06 -03:00