Jussi Saurio
045b11b255
bench/tpc-h: don't fail build if query 1 has output difference (known floating point precision issue)
2025-09-26 16:02:37 +03:00
Jussi Saurio
a783f82470
bench/tpch: remove "cast('yyyy-mm-dd' as datetime)"
...
this causes sqlite and tursodb to interpret the value as just 'yyyy',
e.g. '1995-01-01' becomes '1995', causing a lot of the queries not to
return any results, which is not what we want.
2025-09-26 15:55:38 +03:00
TcMits
17c91c1fe2
resolve conflicts
2025-09-22 16:03:52 +07:00
Avinash Sajjanshetty
0597ea722a
Add encryption throughput test
2025-09-20 21:56:58 +05:30
Pere Diaz Bou
ff3c79d5d7
remove mvvmode and set logical log as default
2025-09-18 18:22:25 +02:00
Pere Diaz Bou
0e5b0fe8c4
perf/throughput/turso: add io option
2025-09-18 18:22:06 +02:00
Pere Diaz Bou
ba798076a0
perf/throughput/turso: add env-filter
2025-09-18 18:22:06 +02:00
Pere Diaz Bou
91c04133e9
perf/throughput/turso: allow logical log benchmark
2025-09-18 18:22:06 +02:00
Pere Diaz Bou
9b35c6efb6
rust/lib: expose mvccmode
2025-09-18 18:21:21 +02:00
Pere Diaz Bou
de8a975a0b
core/mvcc: introduce MvccMode Logical Log
2025-09-18 18:21:04 +02:00
TcMits
96e4c5d241
fix issue 3144
2025-09-16 18:39:45 +07:00
pedrocarlo
3c91ae206b
move as many dependencies as possible to workspace to avoid multiple versions of the same dependency
2025-09-15 17:19:36 -03:00
Jussi Saurio
26c0d72c25
perf/thrpt: add tracing
2025-09-15 14:25:18 +03:00
Pekka Enberg
dd06d2eb99
Merge 'add perf/throughput/rusqlite to workspace' from Pedro Muniz
...
Closes #3116
2025-09-15 14:24:13 +03:00
Pekka Enberg
877b28bcb3
perf/throughput/turso: Use 30 second busy timeout like in rusqlite
2025-09-15 13:57:58 +03:00
pedrocarlo
bd5dcd8d3c
add timeout flag to throughput benchmark
2025-09-15 02:20:32 -03:00
pedrocarlo
3d265489dc
modify semantics of busy_timeout to be more on par with sqlite
2025-09-15 02:20:32 -03:00
pedrocarlo
0586b75fbe
expose function to set busy timeout duration
2025-09-15 02:20:32 -03:00
pedrocarlo
16e79ed508
slight adjustment in perf throughtput printing
2025-09-15 02:16:18 -03:00
pedrocarlo
cc48fa233b
add perf/throughput/rusqlite to workspace
2025-09-14 18:29:03 -03:00
pedrocarlo
01a99f84a6
add perf/throughput/turso to workspace
2025-09-14 16:19:34 -03:00
Pekka Enberg
76a3c20a48
Merge 'perf/throughput/turso: Don't use spawn_blocking()' from Pekka Enberg
...
Let's just use normal spawn()
Reviewed-by: Preston Thorpe <preston@turso.tech >
Closes #3096
2025-09-14 17:55:44 +03:00
Pekka Enberg
a5f1bdbc9d
Merge 'perf/throughput/turso: Don't interleave concurrent transactions in on…' from Pekka Enberg
...
…e connection
With BEGIN CONCURRENT, we cannot use the same connection all the time
because there's no way for the transaction manager to know which
transaction belongs to what "session" -- they're all individual
statements executed in the context of the one connection.
Fixes #3093
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3094
2025-09-14 11:33:20 +03:00
Pekka Enberg
ed8b02d83e
perf/throughput/turso: Don't use spawn_blocking()
...
Let's just use normal spawn()
2025-09-14 11:32:17 +03:00
Pekka Enberg
6e9ba4c561
perf/throughput/turso: Don't interleave concurrent transactions in one connection
...
With BEGIN CONCURRENT, we cannot use the same connection all the time
because there's no way for the transaction manager to know which
transaction belongs to what "session" -- they're all individual
statements executed in the context of the one connection.
Fixes #3093
2025-09-14 10:52:56 +03:00
Pekka Enberg
98af9386e2
perf/throughput/turso: Don't execute futures serially
...
Looping through the futures means we're essentially executing them
serially.
2025-09-14 10:07:21 +03:00
Pekka Enberg
0fad30a30d
perf/throughput/turso: Async transactions with concurrent mode
...
With `BEGIN CONCURRENT`, we should also take advantage of async
transaction processing to maximize concurrency.
2025-09-13 13:25:16 +03:00
Pekka Enberg
8dc2e738a4
core/throughput: Add per transaction think time support
2025-09-13 13:02:43 +03:00
Pekka Enberg
964dd0cd43
perf: Add simple throughput benchmark
...
This adds a simple throughput benchmark for rusqlite and Turso, allowing
to compare the two, but also MVCC and SQLite transactions.
2025-09-12 07:35:57 +03:00
Jussi Saurio
e65742e5ff
Fail CI if tursodb output differs from sqlite in tpc-h queries
2025-08-26 11:30:37 +03:00
Jussi Saurio
87bf488bbc
chore: use rusqlite 0.37 with bundled sqlite everywhere
2025-08-11 15:13:57 +03:00
Jussi Saurio
51f2aad7a4
perf/clickbench: enable rest of queries since we support DISTINCT and REGEXP_REPLACE
2025-08-11 11:32:37 +03:00
Jussi Saurio
86b1232268
chore: enable indexes by default
2025-08-01 15:44:56 +03:00
Glauber Costa
5a66ed8433
measure only the time it takes to open the actual connection
...
The current code includes creating the database object, which is slow.
Unfortunately the same cannot be done on the standard SQLite.
2025-07-23 08:41:36 -05:00
Jussi Saurio
78320464ce
test/clickbench: fix clickbench
...
- enable indexes, otherwise it doesnt work at all
- rename limbo to tursodb
- use mode=list instead of mode=pretty for less bulky tursodb results
2025-07-21 12:00:04 +03:00
Jussi Saurio
cc47bfba02
CSV import fixes
...
- Fix not being able to create table while importing
* The behavior now aligns with SQLite so that if the table already
exists, all the rows are treated as data. If the table doesn't exist,
the first row is treated as the header from which column names for the
new table are populated.
- Insert in batches instead of one at a time
2025-07-15 16:44:11 +03:00
Jussi Saurio
f312227825
uv run ruff format && uv run ruff check --fix
2025-07-09 10:06:29 +03:00
Pekka Enberg
b895381ae6
Revert "Merge 'Reachable assertions in Antithesis Python Test for better logging' from Pedro Muniz"
...
This reverts commit dbbc3f5190 , reversing
changes made to 1cd5a49705 . We're missing
some mandatory parameters, causing these to fail under Antithesis.
2025-07-08 17:51:12 +03:00
pedrocarlo
e9361c0eba
add more logging to antithesis tests
...
format python tests
2025-07-07 19:11:55 -03:00
Glauber Costa
471a95bd96
add a benchmark for connection time versus number of tables
...
SQLite performs poorly for connections as the number of tables increase.
Do we perform better? the same? worse?
Right now the answer is worse. Add a benchmark to help us compare.
2025-07-01 20:10:21 -05:00
Pekka Enberg
12131babae
Move UUID extension to core
...
We want to bundle the UUID extension by default so move the code to core.
2025-06-30 09:54:13 +03:00
Pekka Enberg
725c3e4ddc
Rename limbo_sqlite3_parser crate to turso_sqlite3_parser
2025-06-29 12:34:46 +03:00
Pekka Enberg
eb0de4066b
Rename limbo_ext crate to turso_ext
2025-06-29 12:14:08 +03:00
Pekka Enberg
eec994386b
Rename limbo_macros to turso_macros
2025-06-29 12:00:17 +03:00
Pekka Enberg
53ba3ff926
Rename limbo_core crate to turso_core
2025-06-29 09:59:17 +03:00
Pekka Enberg
018b17b6f2
Rename Limbo to Turso Database
2025-06-26 21:05:02 +03:00
Pekka Enberg
129713018c
Bring back TPC-H benchmarks
2025-06-26 10:27:46 +03:00
Pekka Enberg
2fc5c0ce5c
Switch to runtime flag for enabling indexes
...
Makes it easier to test the feature:
```
$ cargo run -- --experimental-indexes
Limbo v0.0.22
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database
limbo> CREATE TABLE t(x);
limbo> CREATE INDEX t_idx ON t(x);
limbo> DROP INDEX t_idx;
```
2025-06-26 10:07:28 +03:00
pedrocarlo
80ccca8827
ruff lint fix
2025-06-20 15:59:03 -03:00
Pere Diaz Bou
9aecc1c903
disable constraints on stress test
...
without indexes constraints are useless
2025-06-18 12:45:04 +02:00