Skip to main content

Spice v1.9.1 (Nov 24, 2025)

ยท 7 min read
Viktor Yershov
Senior Software Engineer at Spice AI

Announcing the release of Spice v1.9.1!๐Ÿ”ฅ

v1.9.1 introduces Amazon Bedrock Nova 2 Multimodal embeddings support with high-dimensional vectors up to 3,072 dimensions and purpose-optimized embeddings for semantic search and retrieval operations, DynamoDB timestamp filter pushdown for more efficient append-mode acceleration with configurable time formatting, HTTP Data Connector health probe configuration for improved endpoint validation reliability, and Spice .NET SDK v0.2 with expanded .NET version support and updated gRPC libraries. This release focuses on bug fixes, stability, and performance improvements.

Amazon Bedrock Nova 2 Multimodal embeddingsโ€‹

Spice now supports the Amazon Nova 2 Multimodal embeddings models via the Bedrock models provider, enabling high-quality text embeddings for semantic search and vector similarity operations. The Nova embeddings model offers configurable dimensions and advanced features like truncation modes and embedding purpose optimization.

Key Features:

  • High-Dimensional Embeddings: Support for up to 3,072 dimensions for rich semantic representations
  • Configurable Truncation: Control how input text is truncated when exceeding token limits (START, END, or NONE)
  • Purpose Optimization: Optimize embeddings for specific use cases (GENERIC_INDEX, GENERIC_RETRIEVAL, or CLASSIFICATION)
  • Multimodal Model: Leverages Amazon's Nova 2 multimodal architecture for consistent embeddings across different content types

Example spicepod.yml configuration:

embeddings:
- from: bedrock:amazon.nova-2-multimodal-embeddings-v1:0
name: nova_embeddings
params:
dimensions: '3072' # Required: Output dimensions
truncation_mode: START # Optional: START, END, or NONE (default: NONE)
embedding_purpose: GENERIC_RETRIEVAL # Optional. GENERIC_INDEX is default

For more details on the embedding parameters and configuration options, refer to the Amazon Nova Embeddings Documentation and the Spice Embeddings Documentation.

DynamoDB Timestamp Filter Pushdownโ€‹

The DynamoDB Data Connector now supports timestamp filter pushdown, enabling more efficient append-mode acceleration refreshes by pushing timestamp filters directly to DynamoDB queries. Since DynamoDB stores timestamps as strings rather than native datetime types, this feature includes configurable timestamp formatting to ensure correct parsing and filtering.

Key Features:

  • Filters on timestamp columns are now pushed down to DynamoDB, reducing data transfer and improving query performance
  • Support for Go-style datetime formatting patterns to handle various timestamp string formats
  • Uses ISO 8601 format by default when no custom format is specified

Example spicepod.yml configuration:

datasets:
- from: dynamodb:sales
name: sales
time_column: created_at
time_format: timestamptz
params:
time_format: 2006-01-02T15:04:05.000Z07:00
acceleration:
enabled: true
engine: duckdb
refresh_mode: append

For more details, refer to the DynamoDB Data Connector Documentation.

HTTP Data Connector Health Probe Configurationโ€‹

The HTTP Data Connector now supports configurable health probe paths for endpoint validation. Instead of using a random non-existent path, the system can now validate endpoints using a user-specified path, improving flexibility and reliability for health checks.

Example spicepod.yml configuration:

datasets:
- from: https://api.tvmaze.com
name: tvmaze
params:
file_format: json
health_probe: /health-check

For more details, refer to the HTTP Data Connector Documentation.

Spice .NET SDK v0.2โ€‹

The Spice .NET SDK has been upgraded with expanded .NET version support, custom User-Agent configuration, and updated gRPC libraries: spice-dotnet v0.2.0. The SDK is available on NuGet.

Key Features:

  • Expanded .NET Support: Now supports .NET Standard 2.0, .NET Core 8.0, 9.0, and 10.0.
  • Custom User-Agent: Configure custom User-Agent headers for client identification and telemetry.
  • Updated gRPC Libraries: Upgraded gRPC dependencies and netstandard for improved performance and reliability

Upgrade Example:

dotnet add package SpiceAI --version 0.2.0

For more details, refer to the .NET SDK Documentation.

Additional Improvements & Bug Fixesโ€‹

  • Reliability: Fixed view loading to respect topological order, preventing dependency resolution errors.
  • Reliability: Migrated from deprecated trust_dns_resolver to hickory_resolver for improved DNS resolution reliability.
  • Security: Fixed arbitrary file access vulnerability during archive extraction ("Zip Slip") to prevent potential security exploits.
  • Distributed Query: Fixed object store initialization across scheduler/executor gap, improving reliability for distributed query execution.
  • Distributed Query: Optimized query routing by preventing runtime.* schema queries from being sent to the scheduler, improving performance for metadata queries.
  • Performance: Added Blake3 and xxHash support with xxh3_64 as the default caching hashing algorithm for improved cache and query performance.
  • Performance: Optimized default Zstd compression level to 6 for better balance between compression ratio and speed.
  • UX: Improved dataset loading output with clearer progress indicators and status messages.

Contributorsโ€‹

Breaking Changesโ€‹

No breaking changes.

Cookbook Updatesโ€‹

No major cookbook updates.

The Spice Cookbook includes 82 recipes to help you get started with Spice quickly and easily.

Upgradingโ€‹

To upgrade to v1.9.1, use one of the following methods:

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.9.1 image:

docker pull spiceai/spiceai:1.9.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โ€‹

  • fix integration tests: order by the query to make snapshots deterministic by @phillipleblanc in #8198
  • Add health probe override by @lukekim in #8236
  • Use Moka optionally_get_with for SWR single-in-flight semantics by @lukekim in #8231
  • fix: Arbitrary file access during archive extraction ("Zip Slip") by @phillipleblanc in #8242
  • Migrate trust_dns_resolver to hickory_resolver by @phillipleblanc in #8243
  • fix: Deny assert macros in non-test code by @peasee in #8223
  • Distributed query: Object store initialization across scheduler/executor gap, misc bugfixes & improvements by @mach-kernel in #8009
  • Add Blake3, enable xxHash, set xxh3_64 as default, add bench by @lukekim in #8157
  • Make cache zstd default compression level 6 by @lukekim in #8234
  • Use seed for xxh3 by @lukekim in #8232
  • DynamoDB Timestamp Filter Pushdown by @krinart in #8235
  • Add ready_wait for mongo-arrow benchmarks by @krinart in #8246
  • Add support for amazon.nova-2-multimodal-embeddings-v1:0 by @Jeadie in #8225
  • Improve the output of dataset loading by @lukekim in #8256
  • Load views in topological order by @lukekim in #8255
  • Distributed query: Do not send runtime.* schema queries to scheduler by @mach-kernel in #8271
  • Remove input length check for Nova model. by @Jeadie in #8270