PThorpe92
f6fb786cc9
Fix borrow method on WindowsIO
2025-08-05 22:26:19 -04:00
PThorpe92
f6a68cffc2
Remove RefCell from IO and Page apis
2025-08-05 16:24:49 -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
cfbe9d5b9e
Fix clippy error casting same size
2025-07-30 13:48:05 +03:00
PThorpe92
f22313575f
Fix windows method to take usize 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
Levy A.
1f57ab02cf
feat: instrument WindowsIO functions
2025-07-27 20:39:49 -03:00
Levy A.
c95c6b67ee
fix: thread-safe WindowsFile
2025-07-27 20:39:49 -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
3a34f21434
io/windows: pread return bytes read
2025-07-14 10:44:56 +02: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
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
79f8b83cbe
Fix dumb clippy errors
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
Pere Diaz Bou
d1e7f0826b
impl Send Sync for WindowsFile
2025-03-05 14:07:48 +01:00
Pere Diaz Bou
3d3cdbeb0c
fix generic and windows sync compilation
2025-03-05 14:07:48 +01:00
Pere Diaz Bou
ab2fc3fb13
fix clippy arc warnings for now
2025-03-05 14:07:48 +01:00
Pekka Enberg
01671d1d1e
Merge 'Performance improvements for Unix I/O backend' from Preston Thorpe
...
This PR reworks the unix I/O backend, removing runtime reference
counting/borrow checking and optimizing away the hashmap in favor of a
static array, with an unlikely fallback vec.
The only reason the fallback vec is there is because unlike the
`io_uring` module, we cannot simply index into the array with the fd as
the OS could theoretically give us a fd up to I believe 1024 so keeping
an array of that size for a few elements is unnecessary.
Closes #940
2025-02-12 09:29:41 +02:00
PThorpe92
9098237a12
Add as_read method to completion enum
2025-02-11 09:09:47 -05:00
Doug Anderson444
0aa5de6d9f
rm log, switch all to tracing
2025-02-11 09:03:36 -04:00
PThorpe92
75898027a0
Remove unnecessary reference counting from completion io callbacks
2025-02-08 08:20:19 -05:00
Jorge López
5a45df84db
core: add debug line when an IO backend is created. A user can check that the correct one has been selected.
2025-01-11 16:08:41 +01:00
psvri
e7d4fa0a53
Minor clippy fixes
2025-01-01 16:11:52 +05:30
Ziyak Jehangir
99d1b0e5a3
cleanup: replace &(*x) with x.as_ref() for smart pointer derefs
2024-12-19 19:36:04 +05:30
Pere Diaz Bou
e2276c2e9d
O_DIRECT disable on WAL
2024-11-13 13:45:42 +00:00
Pere Diaz Bou
218c32e0e6
remove unix import in windoews
2024-11-07 13:34:48 +01:00
Pere Diaz Bou
0b46648c0e
write wal header on init
2024-11-07 13:29:57 +01:00
Pere Diaz Bou
0d857661f2
windows complete completion
2024-11-07 09:57:24 +01:00
Pere Diaz Bou
2514287263
windows fix
2024-11-06 18:11:15 +01:00
Pere Diaz Bou
fc65c5096d
cacheflush state machine
2024-11-05 15:29:54 +01:00
Pere Diaz Bou
f009eb35c6
suspendable checkpoint
2024-11-05 15:29:54 +01:00
mazchew
671b61ba19
add time querying to io trait
2024-08-25 22:55:15 +08:00
mazchew
156005694a
added rng to io trait for simulation
2024-08-22 23:24:02 +08:00
Pekka Enberg
8f6a2fc814
core: Fix I/O compliation on Windows
...
...just steal the generic implementation of pread() and pwrite().
2024-07-31 19:58:37 +03:00
Pekka Enberg
351242561d
Kill anyhow usage
...
Switch anyhow to explicit `LimboError` type using thiserror crate, which
lets us make error handling more structured.
2024-07-25 17:15:08 +03:00
gandeevanr
9ef212edd3
Added support to disallow multiple processes from opening the same database file in linux and darwin
2024-07-17 11:34:47 -07:00
Raminder Singh
e4a9c5ce6e
fix clippy warnings
2024-07-14 16:50:54 +05:30
Pekka Enberg
2684341bac
Initial pass on deterministic simulator
...
The simulator does not do much, but does discover failures on Linux with
io_uring, though, so it's a start.
2024-06-27 18:32:04 +03:00
Pere Diaz Bou
377073e158
core: I/O write path
2024-06-19 21:26:40 +03:00
Pekka Enberg
ed9f3e6d1e
Single-threaded architecture
...
Use Rc instead of Arc and replace the concurrent LRU with
single-threaded SIEVE.
Fixes #23
Fixes #29
2024-03-03 12:44:45 +02:00
Pekka Enberg
84a5115d77
core: Add Windows I/O module
...
It's a copy of the synchronous I/O module that we use on Darwin. In the
future, let's switch to Windows IOCP API.
2024-03-03 11:34:53 +02:00