Commit Graph

506 Commits

Author SHA1 Message Date
Sebastian Jeltsch
6999bafddd Update JS dependencies. 2025-04-15 22:17:12 +02:00
Sebastian Jeltsch
d5bf462245 Prepare new release v0.9.2. v0.9.2 2025-04-15 15:41:40 +02:00
Sebastian Jeltsch
d9444147a0 Fix minor issues with documentation. 2025-04-15 15:33:31 +02:00
Sebastian Jeltsch
611af1b8e1 Recreate <traildepot>/.gitignore whenever missing. #44
Previously it would not be generated when following the docker-path,
given the depot path had to be pre-created for the docker bind-mount.
2025-04-15 15:23:54 +02:00
Sebastian Jeltsch
68af842184 When logging responses to stdout, log them as JSON. 2025-04-15 15:00:45 +02:00
Sebastian Jeltsch
e0ad4a898c Extend trailbase-sqlites execution model to allow for parallel reads. This reduces the latency long-tail for slow reads.
Note that this complicates the APIs, since it pushes the responsibility
of declaring a query a read or write to the user to then be scheduled
appropriately.

Add `.(read_|)query_row_f` APIs similar to rusqlites
`conn.query_row` accepting a `|row| -> Result<T>` to reduce the use of
`Row` and `Rows`.

Make benchmarks more isolated by not sharing a DB across runs
accumulating writes.
2025-04-15 12:15:40 +02:00
Sebastian Jeltsch
284422c5e8 Add missing "sync" for tokio dependency. 2025-04-14 17:30:09 +02:00
Sebastian Jeltsch
d388246a20 Break up Server abstraction to allow more customization for framework use-cases. 2025-04-14 12:02:42 +02:00
Sebastian Jeltsch
eecab32d39 Minor: consistent tokio and env_logger dependencies. 2025-04-14 09:25:44 +02:00
Sebastian Jeltsch
1e9ae9dcab Add a single-threaded benchmark back alongside parallel one to get both impressions. The former has likely a lot less variance. 2025-04-14 09:10:30 +02:00
Sebastian Jeltsch
9e040d34f6 Make chat-room benchmark more realistic: hammer server in parallel. 2025-04-13 12:28:20 +02:00
Sebastian Jeltsch
a9f56a8ee0 Update rust dependencies. 2025-04-13 11:59:26 +02:00
Sebastian Jeltsch
914a9b3f03 Make query mix benchmark's slow queries slower and group benchmarks with throughput as requested. 2025-04-13 11:12:08 +02:00
Sebastian Jeltsch
844ccfa80c Add a mixed query benchmark to trailbase-sqlite and make all benchmarks concurrently hammer the connection. 2025-04-12 15:23:17 +02:00
Sebastian Jeltsch
faa1712601 Add read benchmarks to trailbase-sqlite. 2025-04-12 13:09:22 +02:00
Sebastian Jeltsch
d0d60857eb Add a shared and TL/pool SQLite connection implementation to the benchmarks as a mere reference.
These implementations are dangerous since despite being behind an async
API, they block on I/O and can thus clog up the tokio runtime. Which is
fine if SQLite is all you do but really bad if other, independent work
gets stalled.
2025-04-12 11:56:47 +02:00
Sebastian Jeltsch
458adcf9ec Add a benchmark scaffold to sqlite. 2025-04-12 10:35:55 +02:00
Sebastian Jeltsch
871a4db6be Prepare new release v0.9.1. v0.9.1 2025-04-09 12:06:39 +02:00
Sebastian Jeltsch
79a2dbd155 Fix: JSON API schemas are now properly tied to API rather than table with correct expansion config. 2025-04-09 11:48:06 +02:00
Sebastian Jeltsch
2df6fe7988 Minor: slightly stricter SQL parser admin API. 2025-04-09 09:23:07 +02:00
Sebastian Jeltsch
a2d84ca059 Update Rust dependencies. 2025-04-08 22:56:25 +02:00
Sebastian Jeltsch
2789a54eac Move JS assets into a separate crate to avoid unecessary rebuilds as much as possible. 2025-04-08 22:50:50 +02:00
Sebastian Jeltsch
f34ee1968f Move json_schema to schema crate. 2025-04-08 15:29:29 +02:00
Sebastian Jeltsch
8a9fc26d08 Move Table/View Metadata to schema column. 2025-04-08 14:03:46 +02:00
Sebastian Jeltsch
f863f46b67 Move sqlite schema representation to schema crates. 2025-04-08 13:11:12 +02:00
Sebastian Jeltsch
c0c7681f4a Restructure crates: make the sqlite execution model more standalone, i.e. move more extension stuff back to extension crate and schema stuff to a new schema crate. 2025-04-08 12:25:10 +02:00
Sebastian Jeltsch
503d7cae9b Pass connection constructor to prepare for broader concurrency models. 2025-04-08 10:05:56 +02:00
Sebastian Jeltsch
15bd04ec28 Update routing in docs to match new routing syntax in axum v0.8. Thanks @Newex. Fixes #43. 2025-04-07 22:24:47 +02:00
Sebastian Jeltsch
599b6a4d06 Cherry-pick better rule validation from _fields_ branch. 2025-04-06 17:05:08 +02:00
Sebastian Jeltsch
c127e492eb Update Rust dependencies. 2025-04-06 11:49:54 +02:00
Sebastian Jeltsch
5f1702a560 Minor: fix link for Rust client on the website. 2025-04-05 17:58:00 +02:00
Sebastian Jeltsch
ff17f913fb Minor: fix drizzle name typo in benchmark graph. 2025-04-04 20:59:04 +02:00
Sebastian Jeltsch
fdfd363cfd Prepare new release v0.9.0. v0.9.0 2025-04-04 14:39:36 +02:00
Sebastian Jeltsch
5936cd6a9d Bump Rust version for docker builds to latest stable v1.86. 2025-04-04 13:27:14 +02:00
Sebastian Jeltsch
f7cce2dc44 Fix logging: deterministically and separately initialize log and tracing. 2025-04-04 13:23:26 +02:00
Sebastian Jeltsch
ecad4d14ee Update benchmark results. 2025-04-04 01:39:37 +02:00
Sebastian Jeltsch
31d7dc4158 Use statement cache in more places. 2025-04-03 21:59:23 +02:00
Sebastian Jeltsch
355b86576a Bump Rust version to 1.85 for docker builds to allow for async closures. 2025-04-03 10:46:56 +02:00
Sebastian Jeltsch
011b0a5550 Update Rust dependencies. 2025-04-03 10:28:56 +02:00
Sebastian Jeltsch
0e6886d5bf Update JS deps. 2025-04-03 10:04:23 +02:00
Sebastian Jeltsch
5ce5819780 Cherry-pick improvements and cleanups from experimental hidden-columns branch. 2025-04-03 09:43:34 +02:00
Sebastian Jeltsch
e7ac7d81f9 Constrain select queries for record reads/listing to specific columns. 2025-04-02 18:24:18 +02:00
Sebastian Jeltsch
8dd3ee6fe7 Remove last dependencies from record API on the underlying view/table schema. This will allow defining a per API schema. 2025-04-02 17:49:02 +02:00
Sebastian Jeltsch
e773dc0f26 Move more responsibility to the RecordAPI in preparation for filtering columns. 2025-04-02 15:57:24 +02:00
Sebastian Jeltsch
b12deb7702 Clean out Table and View metadata and move more responsibility to RecordApi. 2025-04-02 14:53:04 +02:00
Sebastian Jeltsch
b45cfb837f Further improve file handling: limit deletion retries and RAII wrapper to ensure file cleanup on update/create failure. 2025-04-02 12:22:56 +02:00
Sebastian Jeltsch
b07b378a4b Make rust client's error handling more explicit, less leaky and easier to match. 2025-04-02 11:14:07 +02:00
Sebastian Jeltsch
c060e7e863 Cleanup overridden files on upsert. 2025-04-02 00:17:07 +02:00
Sebastian Jeltsch
54e42cb254 Add a periodic cleanup job to retry failed file deletions. 2025-04-02 00:17:07 +02:00
Sebastian Jeltsch
f85d8ded07 Write errors back to pending file deletions. 2025-04-02 00:17:07 +02:00