pedrocarlo
ff955aeee9
simplify clock code by using a common struct
2025-10-14 12:33:36 -03:00
Bob Peterson
bd62c80536
Implement generic file lock/unlock as a noop
2025-10-13 12:54:10 -05: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
0a56d23402
Use u64 for file offsets in IO and calculate such offsets in u64
2025-08-28 09:44:00 -04:00
PThorpe92
8c64b772e7
Use previous WindowsIO impl as generic IO
2025-08-25 19:04:14 -04:00
Nikita Sivukhin
c771487933
add remove_file method to the IO
2025-08-21 14:51:02 +04: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
f6a68cffc2
Remove RefCell from IO and Page apis
2025-08-05 16:24:49 -04: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
a4121c8cea
Impl truncate method for generic 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
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
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
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
b63f541150
impl Send Sync for GenericFile
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
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
Dezhi Wu
bea49549ed
feat(core/io): Add support for file creation in open_file function
...
`cargo test` is always failing on FreeBSD, the following is one of the
errors:
```
---- tests::test_simple_overflow_page stdout ----
thread 'tests::test_simple_overflow_page' panicked at test/src/lib.rs:32:84:
called `Result::unwrap()` on an `Err` value: IOError(Os { code: 2, kind: NotFound, message: "No such file or directory" })
```
After some digging, I found that the `open_file` function in
`core/io/generic.rs` does not respect the `OpenFlags::Create` flag. This
commit adds support for file creation in the `open_file` function.
`cargo test` now passes on FreeBSD.
2024-12-22 11:04:15 +08:00
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
7d8fc80f4b
use len instead of size
2024-11-07 14:01:35 +01:00
Pere Diaz Bou
ce1367b76a
move wal creation
2024-11-07 13:51:02 +01:00
Pere Diaz Bou
0b46648c0e
write wal header on init
2024-11-07 13:29:57 +01:00
Pere Diaz Bou
cef78d54de
fix generic
2024-11-06 17:53:14 +01:00
Pere Diaz Bou
eb8c462c5f
fix io submission on cacheflush
2024-11-06 16:25:42 +00:00
Pere Diaz Bou
da7717edfb
fix generic io match
2024-11-05 15:29:54 +01:00
Pere Diaz Bou
129cc1cd6d
fix open_file generic
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
Pere Diaz Bou
82ee0e4a00
core: fix completion generic io
2024-07-31 17:58:45 +02: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
c391b7b9a6
implemented the drop trait for all the limbo_core::File implementations
2024-07-17 11:34:47 -07: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
Bennett Clement
30e4a70d07
ignore wasm compilation target
2024-07-13 15:17:18 +08:00