Pekka Enberg
fe75ed275e
Merge 'Bump PyO3 dependency' from Pekka Enberg
...
Github's bot reports a use-after-free issue so let's bump up the
version:
https://github.com/penberg/limbo/security/dependabot/4
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #388
2024-11-16 09:02:10 +02:00
Pekka Enberg
0e2291a57e
Merge 'build: Enable LTO for release builds' from Pekka Enberg
...
This reduces `liblimbo_sqlite3.a` binary size from 25 MB to 10 MB:
Before:
$ -lh ../target/release/liblimbo_sqlite3.a
-rw-r--r-- 1 penberg staff 25M 15 Mar 18:36
../target/release/liblimbo_sqlite3.a
After:
$ penberg@vonneumann sqlite3 % ls -lh
../target/release/liblimbo_sqlite3.a
-rw-r--r-- 1 penberg staff 9,9M 15 Mar 18:59
../target/release/liblimbo_sqlite3.a
Closes #389
2024-11-16 09:01:59 +02:00
Pekka Enberg
c3da75d260
build: Enable LTO for release builds
...
This reduces `liblimbo_sqlite3.a` binary size from 25 MB to 10 MB:
Before:
$ -lh ../target/release/liblimbo_sqlite3.a
-rw-r--r-- 1 penberg staff 25M 15 Mar 18:36 ../target/release/liblimbo_sqlite3.a
After:
$ penberg@vonneumann sqlite3 % ls -lh ../target/release/liblimbo_sqlite3.a
-rw-r--r-- 1 penberg staff 9,9M 15 Mar 18:59 ../target/release/liblimbo_sqlite3.a
2024-11-15 19:06:17 +02:00
Pekka Enberg
851ea65530
Bump PyO3 dependency
...
Github's bot reports a use-after-free issue so let's bump up the
version:
https://github.com/penberg/limbo/security/dependabot/4
2024-11-15 16:14:34 +02:00
Pekka Enberg
9d96b22b4a
Merge 'core: create databases from limbo' from Pere Diaz Bou
...
Behold, the database emerges from within.
Reviewed-by: Pekka Enberg <penberg@iki.fi >
Closes #387
2024-11-15 15:55:48 +02:00
Pekka Enberg
44ececce7d
github: Fix Pekka's email address
2024-11-15 15:55:33 +02:00
Pekka Enberg
5e1184d559
Update COMPAT.md
2024-11-15 13:49:15 +02:00
Pere Diaz Bou
6cd0f03643
core: create databases from limbo
2024-11-15 12:09:07 +01:00
Pere Diaz Bou
87c80b2a07
use core wal file for wasm
2024-11-14 17:54:20 +01:00
Pere Diaz Bou
4a55e0b26d
Merge 'core: drop mutex on contents' from Pere Diaz Bou
...
There is no need to have mutexes on buffers, we will introduce mutexes
if we want later on a file level to introduce serializability.
This pr also includes a fix in the cacheflush procedure where a wait of
inflight writes weren't waited.
Reviewed-by: Pekka Enberg <penberg@ki.fi >
Closes #384
2024-11-13 19:26:50 +01:00
Pere Diaz Bou
a4b473ba59
fmt
2024-11-13 19:17:49 +01:00
Pere Diaz Bou
c46bd63b5a
core: drop mutex on contents
...
There is no need to have mutexes on buffers, we will introduce mutexes
if we want later on a file level to introduce serializability.
2024-11-13 19:13:15 +01:00
Pere Diaz Bou
71ac1eacb7
Merge 'btree: cursor with lineal stack structure' from Pere Diaz Bou
...
Removed MemPage from the code in favor of an array to encode the stack
of the cursor. This is both simpler and better in terms of memory
access.
O_DIRECT was removed from WAL file as it introduces alignment
constraints that are too hard to follow in regular appends. Maybe in the
future?
Closes #378
2024-11-13 18:23:31 +01:00
Pere Diaz Bou
2a787aedb5
core: extract page stack and document a bit
2024-11-13 17:13:30 +01:00
Pere Diaz Bou
23923e4175
ignore wal checkpoint test
2024-11-13 14:09:38 +00:00
Pere Diaz Bou
9d7a3e8e60
ignore sequential test
2024-11-13 14:04:28 +00:00
Pere Diaz Bou
dfdd8083e2
remove ignore from wal tests
2024-11-13 13:58:05 +00:00
Pere Diaz Bou
cf86da0ecf
remove extra workflow
2024-11-13 13:57:15 +00:00
Pere Diaz Bou
e2276c2e9d
O_DIRECT disable on WAL
2024-11-13 13:45:42 +00:00
Pekka Enberg
0f2bc822b4
github: Disable Python requirements check
...
It's failing pretty often and, therefore, noisy...
2024-11-13 14:54:11 +02:00
Pekka Enberg
b4a9fbfe1e
Update CHANGELOG
2024-11-13 14:46:49 +02:00
Pekka Enberg
9628c62f61
Merge 'bindings/wasm: Add Database.prepare() and Statement.all()' from Pekka Enberg
...
This adds `Database.prepare()` and `Statement.all()` APIs to the Wasm
bindings so that you can actually get something useful out of the
library.
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #382
2024-11-13 14:46:13 +02:00
Pere Diaz Bou
94a45eab9e
checkpoint inflight
2024-11-13 12:04:54 +00:00
Pere Diaz Bou
cbfb45e55b
more trace logs
2024-11-13 11:31:22 +00:00
Pere Diaz Bou
87957bf4f2
checkpoint log state
2024-11-13 11:24:07 +00:00
Pere Diaz Bou
2d03e90840
remove test wal
2024-11-13 11:13:02 +00:00
Pere Diaz Bou
13a95b583f
debug logs
2024-11-13 11:03:38 +00:00
Pekka Enberg
b7ca2c9823
bindings/wasm: Add Database.prepare() and Statement.all()
...
This adds `Database.prepare()` and `Statement.all()` APIs to the Wasm
bindings so that you can actually get something useful out of the
library.
2024-11-13 12:22:35 +02:00
Pere Diaz Bou
97ec01a220
fix missing '
2024-11-13 10:20:16 +00:00
Pere Diaz Bou
cfb6046717
trace instead of debug on debug
2024-11-13 10:14:12 +00:00
Pekka Enberg
1f228db99f
Merge 'Fix Wasm packaging' from Pekka Enberg
...
The `wasm-pack` too has a known bug where it forgets to add snippets to
`package.json`:
https://github.com/rustwasm/wasm-pack/issues/1206
Let's fix that with some bash magic.
Reviewed-by: Pere Diaz Bou <pere-altea@homail.com >
Closes #381
2024-11-13 12:02:20 +02:00
Pere Diaz Bou
6834f11e28
add dbug option rust.yml
2024-11-13 10:01:06 +00:00
Pere Diaz Bou
78118bae81
fmt
2024-11-13 09:34:36 +00:00
Pekka Enberg
40f517b03f
Fix Wasm packaging
...
The `wasm-pack` too has a known bug where it forgets to add snippets to
`package.json`:
https://github.com/rustwasm/wasm-pack/issues/1206
Let's fix that with some bash magic.
2024-11-13 11:28:22 +02:00
Pere Diaz Bou
800354144a
remove extra join test
2024-11-12 23:11:04 +00:00
Pere Diaz Bou
eb4105282b
btree: fix btree traversal
2024-11-12 23:10:38 +00:00
Pere Diaz Bou
8d1d2d36cc
core/linux: aligned wal header read
2024-11-12 17:53:59 +00:00
Pere Diaz Bou
19f1a00ca4
bindings/python: update bindings requirements-dev
2024-11-12 17:09:41 +01:00
Pere Diaz Bou
48f0e72e14
checkpoint on drop connection
2024-11-12 17:03:30 +01:00
Pere Diaz Bou
807496a146
core: load pages if not loaded
...
Since pages are now tracked with a single centralized structure, it is
possible for a page to have been unloaded a be kept in memory for
metadata purposes like going back in the stack.
Using the example of going to a parent page which was unloaded for
whatever reason: in this case we need to check if it's loaded, if not,
we load it. Locked still means the same thing, loaded just means the
contents of a page are present in memory and if they are present, they
must be in cache.
2024-11-12 14:44:25 +01:00
Pere Diaz Bou
cd2b61d838
btree: cursor with lineal stack structure
...
Removed MemPage from the code in favor of an array to encode the stack
of the cursor. This is both simpler and better in terms of memory
access.
2024-11-12 10:21:22 +01:00
Pere Diaz Bou
2ce57f6d34
Merge 'Write state machine' from Pere Diaz Bou
...
Returning on ongoing IO requires to save the current state, therefore a
state machine makes sense for write operations. This information is
encoded in WriteInfo/WriteState.
Closes #377
2024-11-12 10:21:00 +01:00
Pere Diaz Bou
ce8378793e
btree: run until finished or IO + bug fixes
2024-11-11 17:03:15 +01:00
Pere Diaz Bou
74974d07e7
clippy fix
2024-11-08 11:14:29 +01:00
Pere Diaz Bou
e5836df160
write state machine
...
Returning on ongoing IO requires to save the current state, therefore a
state machine makes sense for write operations. This information is
encoded in WriteInfo/WriteState.
2024-11-08 11:10:49 +01:00
Pere Diaz Bou
ecfcd8835f
rename get_page -> get_current_page
2024-11-07 15:37:21 +01:00
Pere Diaz Bou
86852935bc
Merge 'Wal' from Pere Diaz Bou
...
This pr introduces first iteration of WAL with automatic checkpointing
of 1000 pages (not configurable right now).
Closes #344
2024-11-07 15:19:47 +01: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
218c32e0e6
remove unix import in windoews
2024-11-07 13:34:48 +01:00