date: 2025-12-09 title: 'Spice v1.10.0 (Dec 9, 2025)' type: blog authors: [peasee] tags: [release, caching, acceleration, dynamodb, cayenne, opentelemetry, data-connector, distributed-query, performance]
Announcing the release of Spice v1.10.0! ⚡
Spice v1.10.0 introduces a new Caching Acceleration Mode with stale-while-revalidate (SWR) semantics for disk-persisted, low-latency queries with background refresh. This release also adds the TinyLFU eviction policy for the SQL results cache, a preview of the DynamoDB Streams connector for real-time CDC, S3 location predicate pruning for faster partitioned queries, improved distributed query execution, and multiple security hardening improvements.
Low-Latency Queries with Background Refresh: This release introduces a new caching acceleration mode (opens in a new tab) that implements the stale-while-revalidate (SWR) pattern. Queries return cached results immediately while data refreshes asynchronously in the background, eliminating query latency spikes during refresh cycles. Cached data persists to disk using DuckDB, SQLite, or Cayenne file modes.
Key Features:
refresh_check_interval to balance freshness and source loadRecommendation: Use retention configuration (opens in a new tab) with caching acceleration to ensure stale data is cleaned up over time.
Example spicepod.yaml configuration:
For more details, refer to the Data Acceleration Documentation (opens in a new tab).
Higher Cache Hit Rates for SQL Results Cache: A new TinyLFU cache eviction policy (opens in a new tab) is now available for the SQL results cache. TinyLFU is a probabilistic cache admission policy that maintains higher hit rates than LRU while keeping memory usage predictable, making it ideal for workloads with varying query frequency patterns.
Example spicepod.yaml configuration:
For more details, refer to the Caching Documentation (opens in a new tab) and the Moka TinyLFU Documentation (opens in a new tab) for details of the algorithm.
Real-Time Change Data Capture for DynamoDB: The DynamoDB connector now integrates with DynamoDB Streams for real-time change data capture (CDC). This enables continuous synchronization of DynamoDB table changes into Spice for real-time query, search, and LLM-inference.
Key Features:
refresh_mode: changes to incrementally update accelerated datasetsNote: DynamoDB Streams must be enabled on your DynamoDB table. This feature is in preview.
Example spicepod.yaml configuration:
For more details, refer to the DynamoDB Connector Documentation (opens in a new tab).
Spice can now push metrics to an OpenTelemetry (opens in a new tab) collector, enabling integration with platforms such as Jaeger (opens in a new tab), New Relic (opens in a new tab), Honeycomb (opens in a new tab), and other OpenTelemetry-compatible backends.
Key Features:
Example spicepod.yaml configuration for gRPC:
For more details, refer to the Observability & Monitoring Documentation (opens in a new tab).
S3 Location Predicate Pruning: The S3 data connector (opens in a new tab) now supports location-based predicate pruning, dramatically reducing data scanned by pushing down location filter predicates to S3 listing operations. For partitioned datasets (e.g., year=2025/month=12/), Spice now skips listing irrelevant partitions entirely, significantly reducing query latency and S3 API costs.
AWS S3 Tables Write Support: Full read/write capability for AWS S3 Tables (opens in a new tab), enabling direct integration with AWS's managed table format for S3. Use standard SQL INSERT INTO to write data.
For more details, refer to the S3 Data Connector Documentation (opens in a new tab) and Glue Data Connector Documentation (opens in a new tab).
Distributed query (opens in a new tab) planning and execution have been significantly improved:
DistributeFileScanOptimizer improvements for faster planning with large datasetsFor more details, refer to the Distributed Query Documentation (opens in a new tab).
Search (opens in a new tab) capabilities have been improved with several performance and reliability enhancements:
list_vectors calls for better performanceIndexerExec now properly handles limit pushdown for more efficient searchesFor more details, refer to the Search Documentation (opens in a new tab).
Multiple security improvements have been implemented:
top_n_sample order_by clause parsing to prevent injection attacks.clear history command in the REPL to fully clear persisted historyNo breaking changes.
No major cookbook updates.
The Spice Cookbook (opens in a new tab) includes 82 recipes to help you get started with Spice quickly and easily.
To upgrade to v1.10.0, use one of the following methods:
CLI:
Homebrew:
Docker:
Pull the spiceai/spiceai:1.10.0 image:
For available tags, see DockerHub (opens in a new tab).
Helm:
AWS Marketplace:
🎉 Spice is now available in the AWS Marketplace (opens in a new tab)!
.clear history by @lukekim (opens in a new tab) in #8254 (opens in a new tab)sort_columns on insert by @lukekim (opens in a new tab) in #8091 (opens in a new tab)caching by @lukekim (opens in a new tab) in #8237 (opens in a new tab)dynamodb-streams crate by @krinart (opens in a new tab) in #8283 (opens in a new tab)list_vectors (or equivalent) when indexing into VectorIndexs by @Jeadie (opens in a new tab) in #8282 (opens in a new tab)IndexerExec to properly handle limit pushdown by @sgrebnov (opens in a new tab) in #8366 (opens in a new tab)stale-while-revalidate pattern. by @phillipleblanc (opens in a new tab) in #8365 (opens in a new tab)on_conflict verification more robust by @sgrebnov (opens in a new tab) in #8375 (opens in a new tab).vscode/launch.json by @sgrebnov (opens in a new tab) in #8415 (opens in a new tab)google-genai by @Jeadie (opens in a new tab) in #8390 (opens in a new tab)with_retention_data to dispatch by @sgrebnov (opens in a new tab) in #8430 (opens in a new tab)caching_stale_if_error to caching accelerator; fix multiple upstream requests during SWR; fix Arrow accelerator by @phillipleblanc (opens in a new tab) in #8425 (opens in a new tab)snapshots_trigger_threshold for DynamoDB Streams by @krinart (opens in a new tab) in #8437 (opens in a new tab)duckdb-partitioned query override by @sgrebnov (opens in a new tab) in #8446 (opens in a new tab)aggregate_pushdown_optimization -> optimizer_duckdb_aggregate_pushdown by @ewgenius (opens in a new tab) in #8485 (opens in a new tab)