We're here with the next big release for SpacetimeDB, v0.8.0! 🚀🚀🚀
We've merged in more than 70 new PRs since v0.7.3 and we're super excited to share all the new stuff!
As a reminder you can upgrade from v0.7.3 with the spacetime upgrade
command. Please note that our ABI has changed with this release and you will therefore need to rebuild your modules.
Highlights
The most impactful changes in this release are:
- New performance metrics tracking for your modules on the Testnet!
- Stability and correctness improvements to the persistent storage.
- Multi-column index support
- Switched to Wasmtime execution engine
- Significant performance improvements
Currently much of our effort is focused around improving performance and stability with the goal of launching the Mainnet in April of next year!
What's Changed
- core: Track the number of bytes read when iterating over the WAL by @kim in #496
- Created a route to check what emails are already connected to an identity by @NateTheDev1 in #477
- Capture logs in integration tests by @RReverser in #534
- Update the pull request template by @kulakowski in #541
- Downgrading some logs to trace instead of info by @jdetter in #542
- core: Add truncation to message log by @kim in #526
- Misc refactoring preparing for multi col indices by @Centril in #497
- Moving object defs to SATS by @mamcx in #460
- Add integration test for the query macro by @mamcx in #538
- Desparse Tar Files When Building by @jdetter in #544
- delete_by_col_eq: optimize with smallvec for 1 row case by @Centril in #547
- Disable latest docker tag by @drogus in #546
- Fixes client API breaks introduced by #460 by @cloutiertyler in #558
- Nix
impl TryFrom<&str> for IndexType
by @Centril in #559 - core: Replay database prefix by @kim in #527
- Refactoring IDs for system objects by @mamcx in #439
- Move 'constraints' markers to primitive and fix incompatibility with deploy by @mamcx in #561
- Fix out of order subscription updates by @coolreader18 in #556
- perf(553): Optimize incremental join evaluation by @joshua-spacetime in #557
- Add the
slim_slice
data-structures by @Centril in #528 system_tables
: fixst_indexes_schema
inconsistency by @Centril in #569- Simplify contributor check by @coolreader18 in #565
- core: Refine panic message when decoding fails during replay by @kim in #568
- Switch from wasmer to wasmtime by @coolreader18 in #457
- core: Make
Segment
pub and serde by @kim in #574 - core: Move replay + error correction logic to commit log by @kim in #554
- refactor(571): Track module queue length with histogram by @joshua-spacetime in #576
- test: Create indexes for restarting tests by @kim in #573
- core: Only write actual large objects to odb by @kim in #575
- perf(572): Track the number of reducer panics by @joshua-spacetime in #578
- Update to my main NuGet author handle by @RReverser in #585
- Error for no abi version by @coolreader18 in #580
- perf: Track maximum values for transaction cpu time and reducer queue length by @joshua-spacetime in #583
- Update to rust 1.74 by @coolreader18 in #589
- Add spacetimedb::sql::query_debug_info::QueryDebugInfo by @kazimuth in #560
- Rename HostType::Wasmtime to just Wasm by @coolreader18 in #592
- chore: Add functions for resetting max value metrics by @joshua-spacetime in #600
- perf(591): Distinguish query metrics as sql, subscription or incremental update by @joshua-spacetime in #605
- Hotfix for log replay bug, fix type for constraints column by @mamcx in #604
- perf(590): Label query metrics with query text by @joshua-spacetime in #606
- core: Load large objects eagerly during log replay by @kim in #594
- perf: Record execution and compilation time metrics per query by @joshua-spacetime in #609
- perf(610): More granular histogram buckets for timing metrics by @joshua-spacetime in #613
- Format binary data as hex in sql/satn by @mamcx in #521
- fix: Remove newlines from QueryDebugInfo by @joshua-spacetime in #616
- fix(CommitLog): Do not truncate the log on out of order errors by @joshua-spacetime in #588
- Update wasmtime (fixes fuel tracking) by @coolreader18 in #598
- Move to .NET 8 WASI support by @RReverser in #587
- core: Make
advertise_addr
ofNode
optional by @kim in #618 - refactor: Remove global disk and memory tracking by @joshua-spacetime in #620
- Allow to see the context of a Unsupported query for a subscription by @mamcx in #621
- refactor(metrics): Remove dependencies of metric builder macros by @joshua-spacetime in #624
- Refactoring bootstrapping and adding full support for constraints & multi-column indexes by @mamcx in #596
- Version upgrade to 0.8.0 by @jdetter in #622
- Support arbitrary RHS in C# Query by @RReverser in #586
- fix: Temporarily disable flaky smoketests by @joshua-spacetime in #629
- C#: don't show "Extracting..." message if already unpacked by @RReverser in #628
- Spacetime Upgrade Force Flag by @jdetter in #631
- refactor(metrics): Move metric builder macros into their own crate by @joshua-spacetime in #625
- Try to fsync message log on drop by @kim in #627
- Added RWLock on committed state by @Shubham8287 in #599
- Various fixes for C# column attrs by @RReverser in #635
- ci: Tame the doge by @kim in #632
- chore: Update tracy to 0.10.4 by @joshua-spacetime in #644
- core: Log db open progress at INFO by @kim in #646
- refactor(metrics): Move table size metric into lib by @joshua-spacetime in #636
- chore(vm): Pass database address to the compiler by @joshua-spacetime in #637
- Cache the 'row_type' on TableSchema so is not re-build in each access by @mamcx in #638
- Fixes for performance drop related to missing index selection by @mamcx in #647
- Add timestamp to module logs by @coolreader18 in #641
- [CI] Merge docker images from multiple platforms by @drogus in #640
- Improve TypeScript generated code (fixes and improvements) by @drogus in #603
New Contributors
- @NateTheDev1 made their first contribution in #477
- @Shubham8287 made their first contribution in #599
Full Changelog: v0.7.3-beta-hotfix1...v0.8.0-beta