Pekka Enberg
81f003d29f
Extract create_table() function
2024-03-27 20:44:52 +02:00
Pekka Enberg
ced83ee59c
Update README.md
2024-03-05 17:00:18 +02:00
Pekka Enberg
7eba7bb99c
Merge pull request #44 from penberg/javascript
...
Improve JavaScript/Wasm packaging
2024-03-03 14:21:50 +02:00
Pekka Enberg
5eb9ec0d03
Improve JavaScript/Wasm packaging
2024-03-03 14:18:32 +02:00
Pekka Enberg
227afd6c6f
Merge pull request #42 from penberg/single-thread
...
Single-threaded architecture
2024-03-03 12:57:17 +02: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
8f48416de0
Update README.md
2024-03-03 12:22:27 +02:00
Pekka Enberg
ec79c39331
Merge pull request #40 from penberg/windows
...
Windows support
2024-03-03 11:53:29 +02:00
Pekka Enberg
69c6b67a26
github: Run CI build on Windows
2024-03-03 11:49:55 +02:00
Pekka Enberg
59822e2c6f
core: Don't depend on pprof on Windows
2024-03-03 11:49:55 +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
Pekka Enberg
e0dc9dc86d
Optimize trace_insn()
2024-01-28 13:14:39 +02:00
Pekka Enberg
3d1d4e5355
core: Make OwnedValue cloning cheaper
2024-01-28 12:56:34 +02:00
Pekka Enberg
07912ee139
Use OwnedRecord::new()
2024-01-28 10:22:22 +02:00
Pekka Enberg
2c55cc797d
cargo clippy --fix
2024-01-28 10:21:38 +02:00
Pekka Enberg
9f733b5a73
Simplify Statement::step()
2024-01-28 10:20:45 +02:00
Pekka Enberg
64213766a2
Remove redundant lifetime parameter from Statement::step()
2024-01-28 10:19:31 +02:00
Pekka Enberg
d5bceaefdb
Remove redundant loop from Statement::step()
2024-01-28 10:18:59 +02:00
Pekka Enberg
bb3cc32d6d
Use RefCell instead of Mutex for DatabaseHeader
2024-01-28 10:17:23 +02:00
Pekka Enberg
f2cd403944
core: Replace Mutex with RefCell in BufferPool
2024-01-28 10:13:03 +02:00
Pekka Enberg
225ee98769
cargo fmt
2024-01-28 09:58:04 +02:00
Pekka Enberg
505e28aaeb
Reduce memory allocations
...
Fixes #26
2024-01-28 09:57:12 +02:00
Pekka Enberg
af258a4958
core: Disable invalid UTF-8 sequence test case
...
We disabled UTF-8 validation in read_value() in
bb56ba0736 so let's fix the test case to
reflect that.
2024-01-27 10:16:59 +02:00
Pekka Enberg
3e6bf6892a
core: Switch to Rc in Value::Text
...
Makes deallocation much faster...
2024-01-27 10:09:35 +02:00
Pekka Enberg
0b3db02451
core: Make Value::Text reference counted
...
Avoids lots of memory copies as values get passed through the different
layers.
2024-01-27 09:48:02 +02:00
Pekka Enberg
bb56ba0736
core: Skip UTF-8 validation in read_value()
...
The UTF-8 validation is very expensive. It's unclear if we ever need to
do it at read time and if we do, let's do it when we know the value is
actually going to be used. Speeds up read_value() a lot.
2024-01-27 09:46:20 +02:00
Pekka Enberg
2d625f34c5
core: Optimize Cursor::next()
2024-01-27 09:32:26 +02:00
Pekka Enberg
a06225d4ff
Fix broken test case
2024-01-26 17:27:31 +02:00
Pekka Enberg
4fe59a1edb
SQLite compatibility document
2024-01-26 17:25:12 +02:00
Pekka Enberg
426b2d568b
Revert "core: Optimize read_value() for strings"
...
This reverts commit 7c05149bcf .
2024-01-24 19:14:20 +02:00
Pekka Enberg
7bdecf2e41
Update README.md
2024-01-24 17:57:43 +02:00
Pekka Enberg
fe82aa569f
core: Optimize read_record()
2024-01-24 17:56:09 +02:00
Pekka Enberg
274c8109d6
core: Optimize read_record()
...
The serial type varints are typically just a single byte, so let's
allocate at least header size bytes in the vector to reduce need to grow
it.
2024-01-24 17:56:09 +02:00
Pekka Enberg
4804c2a686
core: Optimize finish_read_btree_page()
2024-01-24 17:56:09 +02:00
Pekka Enberg
7c05149bcf
core: Optimize read_value() for strings
2024-01-24 17:56:09 +02:00
Pekka Enberg
490c3b2dda
core: Optimize read_varint()
2024-01-24 17:56:09 +02:00
Pekka Enberg
d672fc74c3
Update README.md
2024-01-24 17:41:49 +02:00
Pekka Enberg
8c2926e4d1
core/linux: Make io_uring larger
2024-01-24 17:25:33 +02:00
Pekka Enberg
d2a925698d
core/linux: Don't block in run_once()
2024-01-24 17:25:19 +02:00
Pekka Enberg
5c88141a4f
Merge pull request #18 from penberg/async-io
...
Asynchronous I/O
2024-01-24 17:22:58 +02:00
Pekka Enberg
0b9b6cfd29
Asynchronous I/O
2024-01-24 08:14:53 +02:00
Pekka Enberg
2bb56ade4b
Tracing improvements
2024-01-14 15:47:54 +02:00
Pekka Enberg
725eed964b
Tracing improvements
2024-01-14 15:36:59 +02:00
Pekka Enberg
1d3560f9a7
Merge pull request #24 from penberg/fix-wasm
...
Fix WebAssembly build
2024-01-14 15:32:34 +02:00
Pekka Enberg
44dcd48071
Fix WebAssembly build
2024-01-14 15:29:27 +02:00
Pekka Enberg
6c0fb89671
wasm: Fix IO.get() function signature
2024-01-14 15:04:05 +02:00
Pekka Enberg
9af2a285b1
Fix build on Darwin
2024-01-13 09:14:26 +02:00
Pekka Enberg
08b40f2af7
core/linux: Move I/O completion to io_uring
...
Move the Completion::complete() call to the io_uring machinery. We still
essentially do synchronous I/O because of the call to submit_and_wait()
in pread(), but let's take one step at a time...
2024-01-13 09:11:35 +02:00
Pekka Enberg
5ea214083a
core: Switch to using Arc<Completion>
...
We need to be able to leak a reference for io_uring so switch to
Arc<Completion> in the code.
2024-01-13 09:03:21 +02:00
Pekka Enberg
ae2f403838
core: Fix step() return path when page is under I/O
2024-01-12 17:35:55 +02:00