v0.7.1-beta-hotfix1

clockworklabs/SpacetimeDBv0.7.1-beta-hotfix1Oct 19, 2023by cloutiertyler

AI Summary

A performance-focused release improving iteration speed and reducing memory overhead.

Key Highlights

  • 5x performance improvements in certain cases while iterating.
  • Improved performance tracking capabilities.
  • Reduced cloning of data structures like Header.
  • Incremental Evaluation of JOIN queries.

New Features

  • Performance improvements for iteration and joins
  • Refactoring for reduced cloning

Full Release Notes

We've got another update for you all! This is a quick follow up to our past release we substantially improves performance by moving closer towards our planned memory architecture overhaul.

The main highlights are below!

## Highlights
- 5x performance improvements in certain cases while iterating from inside your module
- Improved performance tracking
- General bug fixes and performance improvements

## What's Changed
* Add some comments to `FutureQueue` and the `subscribe` route by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/378
* SATS: misc refactoring by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/382
* `build_csharp`: ensure project path exists  by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/380
* Reduce cloning of `Header` & co by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/384
* Extract `ArrayValue`, `ArrayType`, `MapValue`, `MapType` to own files by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/387
* Simplify the `encoding_roundtrip` tests by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/385
* Move the two `Box`es in `MapType` to one in `BuiltinType` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/388
* Flatten `BuiltinValue` into `AlgebraicValue` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/389
* Get benchmarks type checking again by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/392
* Refactor `locking_tx_datastore` tests by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/393
* More `AlgebraicType` conversions + use `derive_more::From` more by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/395
* Dedup some `locking_tx_datastore` tests by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/394
* Bump log up to trace in the hopes of catching the "identity not yet received" thing by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/314
* feat(397): Add min and max value helpers for builtin types by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/398
* Benchmark modules in release mode by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/396
* Add a section to the PR template requiring an estimate of complexity and risk by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/407
* Less `BuiltinType` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/405
* Run Clippy first and share profile by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/413
* Compile benchmarks in separate folder by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/411
* Switch to using imported module idents for marking version requirements by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/335
* Bump C# version for release by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/416
* Put out benchmark fires by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/404
* Switch cursive to cross-platform backend by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/412
* Simplify and document WasmInstanceEnv's interface by @kulakowski in https://github.com/clockworklabs/SpacetimeDB/pull/422
* test(414): multi-column index scan by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/415
* 🐮 Optimize `decode_column` and friends using `Cow` 🐮 by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/424
* fix(428): Return only one message per table in subscription by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/429
* Reuse Wasm-side buffer while reading iterators by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/435
* Collect iterator into chunks early by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/433
* Fix authorization check for CrudCode by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/431
* Incremental Evaluation of JOIN queries by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/425
* Improve benchmark result reporting by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/357
* [ABI] Remove the special first element of iterator by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/420
* Run docker build on tags too by @drogus in https://github.com/clockworklabs/SpacetimeDB/pull/421
* Optimise binaries with wasm-opt by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/423
* Debugging info for odb / mlog inconsistencies by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/438
* Track time spent in each wasm instance env call by @kulakowski in https://github.com/clockworklabs/SpacetimeDB/pull/427
* Prometheus stuff by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/301
* Version upgrade: v0.7.1-beta by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/441


**Full Changelog**: https://github.com/clockworklabs/SpacetimeDB/compare/v0.7.0-beta...v0.7.1-beta-hotfix1