Our release 0.8.2 is available now! It includes tons of performance improvements and some great bugfixes!
As a reminder you can upgrade from the previous release with the spacetime upgrade
command. If you are on macOS and you've installed through brew we recommend using brew install clockworklabs/tap/spacetime
to upgrade.
Highlights
- Memory architecture refactor: we're working on rearchitecting the way we store and retrieve data from the database. This is our first batch of improvements which reduces the amount of overhead when reading values from the database. This affects both subscription query performance and module performance.
- Tons of performance improvements
- Incremental subscription queries are now evaluated in parallel
- Join evaluation performance improvements
- Lookups on an indexed column are faster
- Fixed
spacetime generate --delete-files
works properly without using--force
- Bug fixes
- Fixed correctness issues with subscription queries
- Fixed some issues related to unwrapping on None
What's Changed
- core: Sort constraint definitions before comparing by @kim in #727
- Allows to convert into/from micros_since_epoch:u64 for TimeStamp by @mamcx in #731
- Fix callgrind action again by @kazimuth in #718
- Fix local callgrind runs by @kazimuth in #723
- Expand callgrind benches by @kazimuth in #728
- Version upgrade to 0.8.1 by @jdetter in #729
- Fix _delete_by_rel by @coolreader18 in #733
- Add
ColList
: a compact replacement ofNonEmpty<ColId>
, 8 vs 32 bytes by @Centril in #730 - feat: subscription to use read type tx by @Shubham8287 in #685
- Fix --delete-files command without using --force by @jdetter in #739
- Use
ColList
more and improve it by @Centril in #738 - Fix for reducer queue metric by @jdetter in #737
- Fix row count for the 'sql' command by @mamcx in #745
- Cleanup SpacetimeDB name usages by @jdetter in #744
- SATS: add support needed for BFLATN => BSATN directly by @Centril in #750
- Check benchmarks on CI + disable callgrind benchmarks on non-Linux by @kazimuth in #752
- Fix some bugs in
concat_byte_chunks
,serialize_bsatn
by @Centril in #755 - made subscription broadcast multithreaded by @Shubham8287 in #741
- Split the old
locking_tx_datastore
by @Centril in #757 - Fixed broken quickstart links in readme by @jdetter in #761
- Fix more broken links by @jdetter in #762
- Add the
spacetimedb_table
crate by @Centril in #763 - perf(759): Track the number of active subscription queries by @joshua-spacetime in #760
- spacetimedb_table: nix spacetimedb-core dep + build_unique_error fixes by @Centril in #767
- feat(748): Add compile time feature flag for table metrics by @joshua-spacetime in #749
- Fixed issue with perfcnt not working on certain platforms and architectures by @cloutiertyler in #768
- Split old datastore more by @Centril in #770
- pointers_yielded -> num_pointers_yielded by @Centril in #773
- core: Lock
unwritten_commit
across I/O by @kim in #775 - Use rayon for broadcast_commit_event by @coolreader18 in #779
- Integrate mem arch into
locking_tx_datastore
by @Centril in #769 - reducer to wait until subsciption broadcast finishes by @Shubham8287 in #776
- Handle returned status codes instead of Rust values by @bfops in #783
- fix: Put query metrics behind feature flag by @joshua-spacetime in #784
- feat(query): Make current plan type hashable by @joshua-spacetime in #782
- Fix assorted typos by @bfops in #785
trait ReadColumn
, to read a single column from aRowRef
by @gefjon in #789- feat(query): Add a utility for checking table refs by @joshua-spacetime in #790
- BTreeIndex: Specialize on primitive key types for great performance by @gefjon in #793
- Unify benchmark runs (to some extent) by @kazimuth in #742
- Fix private not building with latest master by @bfops in #798
- BTreeIndex: use
ReadColumn
instead ofProductValue
fields by @gefjon in #796 - Remove separate "callgrind please" script by @kazimuth in #800
- 1_000_000 insert + update benchmarks by @kazimuth in #764
- Add rust-version to Cargo.toml by @coolreader18 in #802
- Simplify broadcast_commit_event by @coolreader18 in #791
- Fix build errors in spacetimedb_table benches by @coolreader18 in #787
- perf(query): Moves Code::Block instead of cloning during eval by @joshua-spacetime in #805
Full Changelog: v0.8.1-beta...v0.8.2-beta-hotfix7