Spice v1.8.1 (Oct 13, 2025)
Announcing the release of Spice v1.8.1! ๐
Spice v1.8.1 is a patch release that adds Acceleration Snapshots Indexes, and includes a number of bug fixes and performance improvements.
What's New in v1.8.1โ
Acceleration Snapshot Indexesโ
-
Management of Acceleration Snapshots has been improved by adopting an Iceberg-inspired
metadata.json
, which now encodes pointer IDs, schema serialization, and robust checksum and size, which is validate before loading the snapshot. -
Acceleration Snapshot Metrics: The following metrics are now available for Acceleration Snapshots:
-
dataset_acceleration_snapshot_bootstrap_duration_ms
: The time it took the runtime to download the snapshot - only emitted when it initially downloads the snapshot. -
dataset_acceleration_snapshot_bootstrap_bytes
: The number of bytes downloaded to bootstrap the acceleration from the snapshot. -
dataset_acceleration_snapshot_bootstrap_checksum
: The checksum of the snapshot used to bootstrap the acceleration. -
dataset_acceleration_snapshot_failure_count
: Number of failures encountered when writing a new snapshot at the end of the refresh cycle. A snapshot failure does not prevent the refresh from completing. -
dataset_acceleration_snapshot_write_timestamp
: Unix timestamp in seconds when the last snapshot was completed. -
dataset_acceleration_snapshot_write_duration_ms
: The time it took to write the snapshot to object storage. -
dataset_acceleration_snapshot_write_bytes
: The number of bytes written on the last snapshot write. -
dataset_acceleration_snapshot_write_checksum
: The SHA256 checksum of the last snapshot write.
To learn more, see the Acceleration Snapshots Documentation and the Metrics Documentation.
Improved Regular Expression for DuckDB accelerationโ
Regular expression support has been expanded when using DuckDB acceleration for functions like regexp-like
and regexp_match
.
For more details, refer to the SQL Reference for the list of available regular expression functions.
Additional Improvements & Bugfixesโ
- Reliability: Resolved an issue with partitioning on empty partition sets.
- Validation: Added better validation for incorrectly configured Spicepods.
- Reliability: Fixed
partition_by
accelerations when a projection is applied on empty partition sets. - Performance: Ensured
ListingTable
partitions are pruned when filters are not used. - Performance: Don't download acceleration snapshots if the acceleration is already present.
- Performance: Refactored some blocking I/O and synchronization in the async codebase by moving operations to
tokio::task::spawn_blocking
, replacing blocking locks with async-friendly variants. - Bugfix: Nullable fields are now supported for S3 Vectors index columns.
Contributorsโ
Breaking Changesโ
No breaking changes.
Cookbook Updatesโ
- New Accelerated Snapshots Recipe - The recipe shows how to bootstrap DuckDB accelerations from object storage to skip cold starts.
The Spice Cookbook includes 81 recipes to help you get started with Spice quickly and easily.
Upgradingโ
To upgrade to v1.8.1, use one of the following methods:
CLI:
spice upgrade
Homebrew:
brew upgrade spiceai/spiceai/spice
Docker:
Pull the spiceai/spiceai:1.8.1
image:
docker pull spiceai/spiceai:1.8.1
For available tags, see DockerHub.
Helm:
helm repo update
helm upgrade spiceai spiceai/spiceai
AWS Marketplace:
๐ Spice is now available in the AWS Marketplace!
What's Changedโ
Changelogโ
- Remove println in datafusion by @phillipleblanc in #7461
- fix: Ensure ListingTable partitions are pruned when filters are not used by @peasee in #7471
- Create
runtime-secrets
crate by @phillipleblanc in #7474 - Create
runtime-parameters
crate by @phillipleblanc in #7475 - Don't download the snapshot if the acceleration is present by @phillipleblanc in #7477
- Add support for S3 dataset params by @phillipleblanc in #7476
- Add better snapshot validation for incorrectly configured spicepods by @phillipleblanc in #7487
- Move blocking/sync I/O to spawn blocking by @lukekim in #7462
- Validate spicepod file exists before running tests by @lukekim in #7492
- Make snapshot reading/writing more robust with Iceberg-like metadata.json by @phillipleblanc in #7486
- Create
runtime-request-context
crate by @Jeadie in #7459 - Two minor fixes for AI udf tests by @krinart in #7503
- Add model response timeout for ai udf tests by @krinart in #7504
- Add sccache for build test operator by @lukekim in #7515
- Fix partition_by accelerations when a projection is applied on empty partition sets by @phillipleblanc in #7526
- Nullable fields for index columns by @Jeadie in #7523