Skip to main content
Sergei Grebnov
Senior Software Engineer at Spice AI
View all authors

Spice v1.6.0 (Aug 26, 2025)

ยท 22 min read
Sergei Grebnov
Senior Software Engineer at Spice AI

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

Spice 1.6.0 upgrades DataFusion to v48, reducing expressions memory footprint by ~50% for faster planning and lower memory usage, eliminating unnecessary projections in queries, optimizing string functions like ascii and character_length for up to 3x speedup, and accelerating unbounded aggregate window functions by 5.6x. The release adds Kafka and MongoDB connectors for real-time streaming and NoSQL data acceleration, supports OpenAI Responses API for advanced model interactions including OpenAI-hosted tools like web_search and code_interpreter, improves the OpenAI Embeddings Connector with usage tier configuration for higher throughput via increased concurrent requests, introduces Model2Vec embeddings for ultra-low-latency encoding, and improves the Amazon S3 Vectors engine to support multi-column primary keys.

What's New in v1.6.0โ€‹

DataFusion v48 Highlightsโ€‹

Spice.ai is built on the DataFusion query engine. The v48 release brings:

Performance & Size Improvements ๐Ÿš€: Expressions memory footprint was reduced by ~50% resulting in faster planning and lower memory usage, with planning times improved by 10-20%. There are now fewer unnecessary projections in queries. The string functions, ascii and character_length were optimized for improved performance, with character_length achieving up to 3x speedup. Queries with unbounded aggregate window functions have improved performance by 5.6 times via avoided unnecessary computation for constant results across partitions. The Expr struct size was reduced from 272 to 144 bytes.

New Features & Enhancements โœจ: Support was added for ORDER BY ALL for easy ordering of all columns in a query.

See the Apache DataFusion 48.0.0 Blog for details.

Runtime Highlightsโ€‹

Amazon S3 Vectors Multi-Column Primary Keys: The Amazon S3 Vectors engine now supports datasets with multi-column primary keys. This enables vector indexes for datasets where more than one column forms the primary key, such as those splitting documents into chunks for retrieval contexts. For multi-column keys, Spice serializes the keys using arrow-json format, storing them as single string keys in the vector index.

Model2Vec Embeddings: Spice now supports model2vec static embeddings with a new model2vec embeddings provider, for sentence transformers up to 500x faster and 15x smaller, enabling scenarios requiring low latency and high-throughput encoding.

embeddings:
- from: model2vec:minishlab/potion-base-8M # HuggingFace model
name: potion
- from: model2vec:path/to/my/local/model # local model
name: local

Learn more in the Model2Dev Embeddings documentation.

Kafka Data Connector: Use from: kafka:<topic> to ingest data directly from Kafka topics for integration with existing Kafka-based event streaming infrastructure, providing real-time data acceleration and query without additional middleware.

Example Spicepod.yml:

- from: kafka:orders_events
name: orders
acceleration:
enabled: true
refresh_mode: append
params:
kafka_bootstrap_servers: server:9092

Learn more in the Kafka Data Connector documentation.

MongoDB Data Connector: Use from: mongodb:<dataset> to access and accelerate data stored in MongoDB, deployed on-premises or in the cloud.

Example spicepod.yml:

datasets:
- from: mongodb:my_dataset
name: my_dataset
params:
mongodb_host: localhost
mongodb_db: my_database
mongodb_user: my_user
mongodb_pass: password

Learn more in the MongoDB Data Connector documentation.

OpenAI Responses API Support: The OpenAI Responses API (/v1/responses) is now supported, which is OpenAI's most advanced interface for generating model responses.

To enable the /v1/responses HTTP endpoint, set the responses_api parameter to enabled:

Example spicepod.yml:

models:
- name: openai_model_using_responses_api
from: openai:gpt-4.1
params:
openai_api_key: ${ secrets:OPENAI_API_KEY }
responses_api: enabled # Enable the /v1/responses endpoint for this model

Example curl request:

curl http://localhost:8090/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1",
"input": "Tell me a three sentence bedtime story about Spice AI."
}'

To use responses in spice chat, use the --responses flag.

Example:

spice chat --responses # Use the `/v1/responses` endpoint for all completions instead of `/v1/chat/completions`

Use OpenAI-hosted tools supported by Open AI's Responses API by specifying the openai_responses_tools parameter:

Example spicepod.yml:

models:
- name: test
from: openai:gpt-4.1
params:
openai_api_key: ${ secrets:SPICE_OPENAI_API_KEY }
tools: sql, list_datasets
responses_api: enabled
openai_responses_tools: web_search, code_interpreter # 'code_interpreter' or 'web_search'

These OpenAI-specific tools are only available from the /v1/responses endpoint. Any other tools specified via the tools parameter are available from both the /v1/chat/completions and /v1/responses endpoints.

Learn more in the OpenAI Model Provider documentation.

OpenAI Embeddings & Models Connectors Usage Tier: The OpenAI Embeddings and Models Connectors now supports specifying account usage tier for embeddings and model requests, improving the performance of generating text embeddings or calling models during dataset load and search by increasing concurrent requests.

Example spicepod.yml:

embeddings:
- from: openai:text-embedding-3-small
name: openai_embed
params:
openai_usage_tier: tier1

By setting the usage tier to the matching usage tier for your OpenAI account, the Embeddings and Models Connector will increase the maximum number of concurrent requests to match the specified tier.

Learn more in the OpenAI Model Provider documentation.

Contributorsโ€‹

New Contributorsโ€‹

Breaking Changesโ€‹

No breaking changes.

Cookbook Updatesโ€‹

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

Upgradingโ€‹

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

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.6.0 image:

docker pull spiceai/spiceai:1.6.0

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

AWS Marketplace:

๐ŸŽ‰ Spice is also now available in the AWS Marketplace!

What's Changedโ€‹

Dependenciesโ€‹

Changelogโ€‹

  • Support Streaming with Tool Calls (#6941) by @Advayp in #6941
  • Fix parameterized query planning in DataFusion (#6942) by @Jeadie in #6942
  • Update the UnableToLoadCredentials error with a pointer to docs (#6937) by @phillipleblanc in #6937
  • Fix spicecloud benchmark (#6935) by @krinart in #6935
  • [Debezium] Support for VariableScaleDecimal (#6934) by @krinart in #6934
  • Update to DF 48 (#6665) by @mach-kernel and @kczimm in #6665
  • Mark append-stream and CDC datasets as ready after first message (#6914) by @sgrebnov in #6914
  • Model2Vec embedding model support (#6846) by @mach-kernel in #6846
  • Update snapshot for S3 vector search test (#6920) by @Jeadie in #6920
  • remove [] from queryset in spicepod path for CI (#6919) by @Jeadie in #6919
  • Remove verbose tracing (#6915) by @Jeadie in #6915
  • Refactor how models supporting the Responses API are loaded (#6912) by @Advayp in #6912
  • Write tests for truncate formatting in arrow_tools and fix bug. (#6900) by @Jeadie in #6900
  • Support using the Responses API from spice chat (#6894) by @Advayp in #6894
  • Include GPT-5 into Text-To-SQL and Financebench benchmarks (#6907) by @sgrebnov in #6907
  • Better error message when credentials aren't loaded for S3 Vectors (#6910) by @phillipleblanc in #6910
  • Add tracing and system prompt support for the Responses API (#6893) by @Advayp in #6893
  • Constraint violation check is improved to control behavior when violations occur within a batch (#6897) by @phillipleblanc in #6897
  • fix: Multi-column text search with v1/search (#6905) by @peasee in #6905
  • fix: Correctly project text search primary keys to underlying projection (#6904) by @peasee in #6904
  • fix: Update benchmark snapshots (#6901) by @app/github-actions in #6901
  • In S3vector, do not pushdown on non-filterable columns (#6884) by @Jeadie in #6884
  • Run E2E Test CI macOS build on bigger runners (#6896) by @phillipleblanc in #6896
  • Enable configuration of the Responses API for the Azure model provider (#6891) by @Advayp in #6891
  • fix: Update benchmark snapshots (#6888) by @app/github-actions in #6888
  • Update OpenAPI specification for /v1/responses (#6889) by @Advayp in #6889
  • Add test to ensure tools are injected correctly in the Responses API (#6886) by @Advayp in #6886
  • Enable embeddings for append streams (#6878) by @sgrebnov in #6878
  • Show correct limit for EXPLAIN plans in S3VectorsQueryExec (#6852) by @Jeadie in #6852
  • Responses API support for Azure Open AI (#6879) by @Advayp in #6879
  • fix: Update search test case structure (#6865) by @peasee in #6865
  • Fix mongodb benchmark (#6883) by @phillipleblanc in #6883
  • Support multiple column primary keys for S3 vectors. (#6775) by @Jeadie in #6775
  • Kafka Data Connector: persist consumer between restarts (#6870) by @sgrebnov in #6870
  • Fix newlines in errors added in recent PRs (#6877) by @phillipleblanc in #6877
  • Add override parameter to force support for the Responses API (#6871) by @Advayp in #6871
  • Don't use metadata columns in VectorScanTableProvider (#6854) by @Jeadie in #6854
  • Add non-streaming tool call support (hosted and Spice tools) via the Responses API (#6869) by @Advayp in #6869
  • Update error guideline to remove newlines + remove newlines from error messages. (#6866) by @phillipleblanc in #6866
  • Remove void acceleration engine + optional table behaviors (#6868) by @phillipleblanc in #6868
  • Kafka Data Connector basic support (#6856) by @sgrebnov in #6856
  • Federated+Accelerated TPCH Benchmarks for MongoDB (#6788) by @krinart in #6788
  • Pass embeddings calculated in compute_index to the acceleration (#6792) by @phillipleblanc in #6792
  • Add non-streaming and streaming support for OpenAI Responses API endpoint (#6830) by @Advayp in #6830
  • Use latest version of OpenAI crate to resolve issues with Service Tier deserialization (#6853) by @Advayp in #6853
  • Update openapi.json (#6799) by @app/github-actions in #6799
  • Improve management message (#6850) by @lukekim in #6850
  • fix: Include FTS search column if it is the PK (#6836) by @peasee in #6836
  • Refactor Health Checks (#6848) by @Advayp in #6848
  • Introduce a Responses trait and LLM registry for model providers that support the OpenAI Responses API (#6798) by @Advayp in #6798
  • fix: Update datafusion-table-providers to include constraints (#6837) by @peasee in #6837
  • Bump postcard from 1.1.2 to 1.1.3 (#6841) by @app/dependabot in #6841
  • Bump governor from 0.10.0 to 0.10.1 (#6835) by @app/dependabot in #6835
  • Bump ctor from 0.2.9 to 0.5.0 (#6827) by @app/dependabot in #6827
  • Bump azure_core from 0.26.0 to 0.27.0 (#6826) by @app/dependabot in #6826
  • Bump rstest from 0.25.0 to 0.26.1 (#6825) by @app/dependabot in #6825
  • Use latest commit in our fork of async-openai (#6829) by @Advayp in #6829
  • Bump rustls from 0.23.27 to 0.23.31 (#6824) by @app/dependabot in #6824
  • Bump async-trait from 0.1.88 to 0.1.89 (#6823) by @app/dependabot in #6823
  • Bump hyper from 1.6.0 to 1.7.0 (#6814) by @app/dependabot in #6814
  • Bump serde_json from 1.0.140 to 1.0.142 (#6812) by @app/dependabot in #6812
  • Add s3 vector test retrieving vectors (#6786) by @Jeadie in #6786
  • fix: Allow v1/search with only FTS (#6811) by @peasee in #6811
  • Bump tantivy from 0.24.1 to 0.24.2 (#6806) by @app/dependabot in #6806
  • Bump tokio-util from 0.7.15 to 0.7.16 (#6810) by @app/dependabot in #6810
  • fix: Improve FTS index primary key handling (#6809) by @peasee in #6809
  • Bump logos from 0.15.0 to 0.15.1 (#6808) by @app/dependabot in #6808
  • Bump hf-hub from 0.4.2 to 0.4.3 (#6807) by @app/dependabot in #6807
  • Bump odbc-api from 13.0.1 to 13.1.0 (#6803) by @app/dependabot in #6803
  • fix: Spice search CLI with FTS supports string or slice unmarshalling (#6805) by @peasee in #6805
  • Bump uuid from 1.17.0 to 1.18.0 (#6797) by @app/dependabot in #6797
  • Bump reqwest from 0.12.22 to 0.12.23 (#6796) by @app/dependabot in #6796
  • Bump anyhow from 1.0.98 to 1.0.99 (#6795) by @app/dependabot in #6795
  • Bump clap from 4.5.41 to 4.5.45 (#6794) by @app/dependabot in #6794
  • Respect default MAX_DECODING_MESSAGE_SIZE (100MB) in Flight API (#6802) by @sgrebnov in #6802
  • Fix compilation errors caused by upgrading async-openai (#6793) by @Advayp in #6793
  • Remove outdated vector search benchmark (replaced with testoperator) (#6791) by @sgrebnov in #6791
  • Handle errors in vector ingestion pipeline (#6782) by @phillipleblanc in #6782
  • fix: Explicitly error when chunking is defined for vector engines (#6787) by @peasee in #6787
  • Make VectorScanTableProvider and VectorQueryTableProvider support multi-column primary keys (#6757) by @Jeadie in #6757
  • Use megascience/megascience Q+A dataset for text search testing. (#6702) by @Jeadie in #6702
  • Flight REPL autocomplete (#6589) by @krinart in #6589
  • use ref: github.event.pull_request.head.sha in integration_models.yml (#6780) by @Jeadie in #6780
  • fix: Move search telemetry calls in UDTF to scan (#6778) by @peasee in #6778
  • Fix Hugging Face models and embeddings loading in Docker (#6777) by @ewgenius in #6777
  • feat: Migrate bedrock rate limiter (#6773) by @peasee in #6773
  • Run the PR checks on the DEV runners (#6769) by @phillipleblanc in #6769
  • feat: add OpenAI models rate controller (#6767) by @peasee in #6767
  • Implement MongoDB data connector (#6594) by @krinart in #6594
  • fix: Use head ref for concurrency group (#6770) by @peasee in #6770
  • fix: Run enforce pulls with spice on pull_request_target (#6768) by @peasee in #6768
  • feat: Add OpenAI Embeddings Rate Controller (#6764) by @peasee in #6764
  • Move AWS SDK credential bridge integration test to the existing AWS SDK integration test run (#6766) by @phillipleblanc in #6766
  • Use Spice specific errors instead of OpenAIError in embedding module (#6748) by @kczimm in #6748
  • Use context in Glue Catalog Provider (#6763) by @Advayp in #6763
  • pin cargo-deny to previous version (#6762) by @kczimm in #6762
  • Bump actions/download-artifact from 4 to 5 (#6720) by @app/dependabot in #6720
  • Upgrade dependabot dependencies (#6754) by @phillipleblanc in #6754
  • Set E2E Test CI models build to 90 minute timeout (#6756) by @phillipleblanc in #6756
  • chore: upgrade to Rust 1.87.0 (#6614) by @kczimm in #6614
  • feat: Add initial runtime-rate-limiter crate (#6753) by @peasee in #6753
  • feat: Add more embedding traces, add MiniLM MTEB spicepod (#6742) by @peasee in #6742
  • Update QA analytics for release (#6740) by @Advayp in #6740
  • Always use 'returnData: true' for s3 vector query index (#6741) by @Jeadie in #6741
  • feat: Add Embedding and Search anonymous telemetry (#6737) by @peasee in #6737
  • Add 1.5.2 to SECURITY.md (#6739) by @ewgenius in #6739
  • Combine the Iceberg and Object Store AWS SDK bridges into one crate (#6718) by @Advayp in #6718
  • Updates to v1.5.2 release notes (#6736) by @lukekim in #6736
  • Update end game template - move glue catalog to catalogs section (#6732) by @ewgenius in #6732
  • Update v1.5.2.md (#6735) by @kczimm in #6735
  • Add note about S3 Vectors workaround (#6734) by @phillipleblanc in #6734
  • feat: Avoid joining for VectorScanTableProvider if the index is sufficient (#6714) by @peasee in #6714
  • update changelog (#6729) by @kczimm in #6729
  • remove unneeded autogenerated s3 vector code (#6715) by @Jeadie in #6715
  • fix: Set S3 vectors default limit to 30, add more tracing (#6712) by @peasee in #6712
  • docs: Add Hadoop cookbook to endgame template (#6708) by @peasee in #6708
  • Fix testoperator append mode compilation error (#6706) by @phillipleblanc in #6706
  • test: Add VectorScanTableProvider snapshot tests (#6701) by @peasee in #6701
  • feat: Add Hadoop catalog-mode benchmark (#6684) by @peasee in #6684
  • Move shared AWS crates used in bridges to workspace (#6705) by @Advayp in #6705
  • Use installation id to group connections (#6703) by @Advayp in #6703
  • Add Guardrails for AWS bedrock models (#6692) by @Jeadie in #6692
  • Update bedrock keys for CI. (#6693) by @Jeadie in #6693
  • Update acknowledgements (#6690) by @app/github-actions in #6690
  • ROADMAP updates Aug 1, 2025 (#6667) by @lukekim in #6667
  • Add retry logic for OpenAI embeddings creation (#6656) by @sgrebnov in #6656
  • Make models E2E chat test more robust (#6657) by @sgrebnov in #6657
  • Update Search GH Workflow to use Test Operator (#6650) by @sgrebnov in #6650
  • Score and P95 latency calculation for MTEB Quora-based vector search tests in Test Operator (#6640) by @sgrebnov in #6640
  • Fix multiple query error being classified as an internal error (#6635) by @Advayp in #6635
  • Add Support for S3 Table Buckets (#6573) by krinart in #6573
  • set MISTRALRS_METAL_PRECOMPILE=0 for metal (#6652) by @kczimm in #6652
  • Vector search to push down udtf limit argument into logical sort plan (#6636) by @mach-kernel in #6636
  • docs: Update qa_analytics.csv (#6643) by @peasee in #6643
  • Update SECURITY.md (#6642) by @Jeadie in #6642
  • docs: Update qa_analytics.csv (#6641) by @peasee in #6641
  • Separate token usage (#6619) by @Advayp in #6619
  • Fix typo in release notes (#6634) by @Advayp in #6634
  • Add environment variable for org token (#6633) by @Advayp in #6633
  • CDC: Compute embeddings on ingest (#6612) by @mach-kernel in #6612
  • Add view name to view creation errors (#6611) by @lukekim in #6611
  • Add core logic for running MTEB Quora-based vector search tests in Test Operator (#6607) by @sgrebnov in #6607
  • Revert "Update generate-openapi.yml (#6584)" (#6620) by @Jeadie in #6620
  • Non-accelerated views should report as ready only after all dependent datasets are ready (#6617) by @sgrebnov in #6617

Spice v1.2.1 (May 6, 2025)

ยท 6 min read
Sergei Grebnov
Senior Software Engineer at Spice AI

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

Spice v1.2.1 includes several data connector fixes and improves query performance for accelerated views. This release also introduces Databricks Service Principal (M2M OAuth) authentication and expands parameterized queries.

Highlights in v1.2.1โ€‹

  • Databricks Service Principal Support: Databricks datasets and catalogs now support Machine-to-Machine (M2M) OAuth authentication via Service Principals, enabling secure machine connections to Databricks.

    Example spicepod.yaml:

    datasets:
    - from: databricks:spiceai.datasets.my_awesome_table # A reference to a table in the Databricks unity catalog
    name: my_delta_lake_table
    params:
    mode: delta_lake
    databricks_endpoint: dbc-a1b2345c-d6e7.cloud.databricks.com
    databricks_client_id: ${secrets:DATABRICKS_CLIENT_ID}
    databricks_client_secret: ${secrets:DATABRICKS_CLIENT_SECRET}

    For details, see documentation for:

  • Iceberg Data Connector: Now supports cross-account table access via the AWS Glue Catalog Connector and fixes an issue when querying data from append mode datasets.

  • Iceberg Catalog API: Full compatibility with the Iceberg HTTP REST Catalog API to consume Spice datasets from Iceberg Catalog clients.

    For details, see documentation for:

  • Improved Parameterized Query Support: Expanded type inference for placeholders in:

    • IN list expressions
    • LIKE patterns
    • SIMILAR TO patterns
    • LIMIT clauses
    • Subqueries

New Contributors ๐ŸŽ‰โ€‹

Contributorsโ€‹

Breaking Changesโ€‹

No breaking changes.

Cookbook Updatesโ€‹

New recipes for:

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

Upgradingโ€‹

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

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.2.1 image:

docker pull spiceai/spiceai:1.2.1

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

What's Changedโ€‹

Dependenciesโ€‹

  • No major dependency changes.

Changelogโ€‹

  • Fix: Specify metric type as a dimension for testoperator by @peasee in #5630
  • Fix: Add option to run dispatch schedule by @peasee in #5631
  • Infer placeholder datatype for InList, Like, and SimilarTo by @kczimm in #5626
  • Add QA analytics for 1.2.0 by @phillipleblanc in #5640
  • Fix: Use SPICED_COMMIT for spiced_commit_sha by @peasee in #5632
  • New crates/tools by @Jeadie in #5121
  • Update openapi.json by @github-actions in #5643
  • Enable metrics reporting for models benchmarks (evals) by @sgrebnov in #5639
  • Implement CatalogBuilder, add app and runtime references to catalog component, add runtime reference to connector params by @ewgenius in #5641
  • Fix eventing bug in LLM progress; Add tool and worker progress by @Jeadie in #5619
  • Handle small precision differences in TPCH answer validation by @phillipleblanc in #5642
  • Add TokenProviderRegistry to the runtime by @ewgenius in #5651
  • Provide ModelContextLayer for evals by @Jeadie in #5648
  • Databricks data_components refactor. Databricks Spark connect - add set_token method and writable spark session by @ewgenius in #5654
  • Extract AWS Glue warehouse for cross-account Iceberg tables by @phillipleblanc in #5656
  • Refactor Dataset component by @phillipleblanc in #5660
  • Fix Iceberg API returning 404 when schema contains a Dictionary by @phillipleblanc in #5665
  • Fix dependencies: downgrade swagger-ui to v8; force zip to 2.3.0 by @kczimm in #5664
  • Add DuckDB indexes spicepod, additional dispatches by @peasee in #5633
  • Update readme: update data federation link by @nuvic in #5673
  • Support metadata columns for object-store based data connectors by @phillipleblanc in #5661
  • Add model name to LLM judges, and add model_graded_scoring task by @Jeadie in #5655
  • Add SF1000 TPCH test spicepods for delta lake by @Sevenannn in #5606
  • Validate Github Connector resource existence before building the github connector graphql table by @Sevenannn in #5674
  • Remove hard-coded embedding performance tests in CI by @Sevenannn in #5675
  • Databricks M2M auth for spark connect data connector by @ewgenius in #5659
  • Enable federated data refresh support for accelerated views by @sgrebnov in #5677
  • Add pods watcher integration test by @Sevenannn in #5681
  • Add m2m support for databricks delta connector by @ewgenius in #5680
  • Update end_game.md by @sgrebnov in #5684
  • Update StaticTokenProvider to use SecretString instead of raw str value by @ewgenius in #5686
  • Add M2M Auth support for Databricks catalog connector by @ewgenius in #5687
  • Update UX to disable acceleration federation by @sgrebnov in #5682
  • Improve placeholder inference (LIMIT & Expr::InSubquery) by @phillipleblanc in #5692
  • Tweak default log to ignore aws_config::imds::region by @phillipleblanc in #5693
  • Make Spice properly Iceberg Catalog API compatible for load table API by @phillipleblanc in #5695
  • Use deterministic queries for Databricks m2m catalog tests by @ewgenius in #5696
  • Support retrieving the latest Iceberg table on table scan by @phillipleblanc in #5704

Full Changelog: v1.2.0...v1.2.1

Spice v1.0.6 (Mar 17, 2025)

ยท 4 min read
Sergei Grebnov
Senior Software Engineer at Spice AI

Announcing the release of Spice v1.0.6 โšก

Spice v1.0.6 improves stability for DuckDB acceleration, Iceberg Data/Catalog connector improvements when using AWS Glue, and fixes an issue with the ready_state: on_registration federation fallback when using DuckDB. In addition, redundant data refreshes on startup are avoided for accelerations with persistent data.

Highlights in v1.0.6โ€‹

  • Iceberg Data/Catalog Connector Improvements: Improves Iceberg data & catalog connector reliability, including bug fixes for AWS Glue API rate-limiting and compatibility, REST API pagination support, explicit AWS credential handling, and support for AWS STS role assumption.

  • Fixes On-Registration Fallback when using DuckDB: Previously, when using DuckDB as a data accelerator and the ready_state: on_registration configuration, queries made during the initial data refresh did not properly fallback to the federated source. This is now fixed.

  • DuckDB downgraded for Stability: DuckDB has been downgraded to v1.1.3 due to a regression in memory handling tracked by duckdb/duckdb issue #16640. Once resolved and validated, Spice will re-upgrade to v1.2.x.

  • Expanded Integration Tests: Additional integration tests covering federated accelerator behavior and graceful shutdown processes have been added.

  • Optimized Data Refresh for Persistent Accelerations: Changed behavior in v1.0.6. When using persistent (file-mode) acceleration without a defined refresh interval, Spice performs a full refresh at startup only if no previously accelerated data is available. This ensures efficient startup behavior by avoiding unnecessary refreshes. This logic applies only to full refreshes when no refresh interval is specified.

To maintain the previous behavior and always refresh on every startup, set:

acceleration:
refresh_on_startup: always

Contributorsโ€‹

  • @peasee
  • @phillipleblanc
  • @sgrebnov
  • @lukekim
  • @Sevenannn

Breaking Changesโ€‹

Starting from v1.0.6 when using persistent (file-mode) acceleration without a defined refresh interval, Spice performs a full refresh at startup only if no previously accelerated data is available. To maintain the previous behavior and always refresh on every startup, set:

acceleration:
refresh_on_startup: always

Cookbook Updatesโ€‹

No new recipes.

Upgradingโ€‹

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

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.0.6 image:

docker pull spiceai/spiceai:1.0.6

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

What's Changedโ€‹

Dependenciesโ€‹

Changelogโ€‹

  • Implement proper ready_state: on_registration for federation enabled accelerators by @phillipleblanc in #5019
  • Add indexes and primary keys mismatch detection for DuckDB Acceleration by @sgrebnov in #5045
  • Add comprehensive integration tests for the ready_state behavior by @phillipleblanc in #5042
  • Add test Spicepod for acceleration with constraints by @sgrebnov in #4891
  • Add test Spicepod for DuckDB append acceleration with constraints by @sgrebnov in #4898
  • Add DuckDB graceful shutdown test to E2E CI tests by @sgrebnov in #5047
  • Update duckdb_append_with_pk_and_indexes.yaml (work for duckdb 1.1.x) by @sgrebnov in #5067
  • fix: Downgrade to DuckDB 1.1.3 by @peasee in #5055
  • fix: Acceleration federation integration test by @peasee in #5070
  • Improvements to Iceberg Catalog/Data Connector by @phillipleblanc in #5071
  • Add Results-Cache-Status to indicate query result came from cache by @phillipleblanc in #4809
  • fix: Spice.ai schema inference by @peasee in #4674
  • Add refresh_on_startup Spicepod configuration param by @phillipleblanc and @sgrebnov in #5086
  • Test restart behavior of DuckDB file acceleration against glue iceberg table by @Sevenannn #5075
  • Run Iceberg Data Connector - DuckDB File mode integration test by @Sevenannn #5069
  • Integration test for glue iceberg catalog by @Sevenannn #5077

Full Changelog: https://github.com/spiceai/spiceai/compare/v1.0.5...v1.0.6

Spice v1.0.5 (Mar 11, 2025)

ยท 4 min read
Sergei Grebnov
Senior Software Engineer at Spice AI

Announcing the release of Spice v1.0.5 ๐ŸงŠ

Spice v1.0.5 expands Iceberg support with the introduction of the Iceberg Data Connector, in addition to the existing Iceberg Catalog Connector. This new connector enables direct dataset creation and configuration for specific Iceberg objects, enabling federated and accelerated SQL queries on Apache Iceberg tables.

Performance improvements include object-store optimized Parquet pruning in append mode, where object-store metadata is now leveraged alongside Hive partitioning to optimize file pruning. This results in faster and more efficient queries.

DuckDB has been upgraded to v1.2.0, along with additional stability improvements, including improved graceful shutdown and the ability to configure the DuckDB memory limit.

Additional updates include support for the Arrow Map type.

Highlights in v1.0.5โ€‹

  • New Iceberg Data Connector: Enables direct dataset creation and querying of Iceberg tables.

    Example usage in spicepod.yaml:

    datasets:
    - from: iceberg:https://iceberg-catalog-host.com/v1/namespaces/my_namespace/tables/my_table
    name: my_table
    params:
    # Same as Iceberg Catalog Connector
    acceleration:
    enabled: true

    For detailed setup instructions, authentication options, and configuration parameters, refer to the Iceberg Data Connector documentation.

  • Improved Parquet pruning in append mode: Uses object-store metadata for more efficient file pruning.

  • DuckDB upgrade to v1.2.0 with improved graceful shutdown: Read the DuckDB v1.2.0 announcement for details, including breaking changes for map and list_reduce. Graceful shutdown of DuckDB has been improved for better stability across restarts.

  • Configurable DuckDB memory limit: Use the duckdb_memory_limit parameter to set the DuckDB acceleration memory limit:

    - from: spice.ai:path.to.my_dataset
    name: my_dataset
    acceleration:
    params:
    duckdb_memory_limit: '2GB'
    enabled: true
    engine: duckdb
    mode: file

Contributorsโ€‹

  • @peasee
  • @phillipleblanc
  • @sgrebnov
  • @lukekim

Breaking Changesโ€‹

Upgradingโ€‹

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

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.0.5 image:

docker pull spiceai/spiceai:1.0.5

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

What's Changedโ€‹

Dependenciesโ€‹

Changelogโ€‹

  • fix: Update OpenAI model health check by @peasee in #4849
  • fix: Allow metrics endpoint setting in CLI by @peasee in #4939
  • DuckDB acceleration: fix Decimal with zero scale support by @sgrebnov in #4922
  • Introduce runtime shutdown state by @sgrebnov in #4917
  • Add support for Flight and HTTP endpoints configuration to Spice CLI (run and sql) by @sgrebnov and @lukekim in #4913
  • Fix Datafusion resources deallocation during shutdown by @sgrebnov in #4912
  • DuckDB: fix error handling during record batch insertion by @sgrebnov in #4894
  • DuckDB: add support for Map Arrow type for DuckDB acceleration by @sgrebnov in #4887
  • Upgrade to DuckDB v1.2.0 by @sgrebnov in #4842
  • Gracefully shutdown the runtime and deallocate static resources by @sgrebnov in #4879
  • Implement an Iceberg Data Connector by @phillipleblanc in #4941
  • Don't trace canceled dataset refresh during runtime termination by @sgrebnov in #4958
  • Use metadata column last_modified when specified as a time_column by @phillipleblanc in #4970
  • Add duckdb_memory_limit param support for DuckDB acceleration by @sgrebnov in #4971
  • Add Iceberg dataset integration test by @phillipleblanc in #4950

Full Changelog: https://github.com/spiceai/spiceai/compare/v1.0.4...v1.0.5

Spice v1.0.2 (Feb 4, 2025)

ยท 7 min read
Sergei Grebnov
Senior Software Engineer at Spice AI

Announcing the release of Spice v1.0.2 ๐ŸŽ“

Spice v1.0.2 adds support for running local filesystem-hosted DeepSeek models including R1 (cloud-hosted via DeepSeek API was already supported) and improves the developer experience for debugging AI chat tasks along with several bug fixes. The HuggingFace and Filesystem-Hosted models providers have both graduated to Release Candidates (RC) and the Spice.ai Cloud Platform catalog provider has graduated to Beta.

Highlights in v1.0.2โ€‹

  • spice trace New spice trace CLI command that outputs a detailed breakdown of traces and tasks, including tool usage and AI completions.

    Examples:

    trace> spice trace ai_chat
    [61cc6bd0e571c783] ( 2593.77ms) ai_chat
    โ”œโ”€โ”€ [69362c30f238076f] ( 0.36ms) tool_use::get_readiness
    โ”œโ”€โ”€ [b6b17f1a9a6b86dc] ( 982.21ms) ai_completion
    โ”œโ”€โ”€ [c30d692c6c41c5ee] ( 0.06ms) tool_use::list_datasets
    โ””โ”€โ”€ [ce18756d5fef0df0] ( 1605.12ms) ai_completion

    trace> spice trace ai_chat --trace-id 61cc6bd0e571c783

    trace> spice trace ai_chat --id chatcmpl-AvXwmPSV1PMyGBi9dLfkEQTZPjhqz

    The spice trace CLI simply outputs data available in the runtime.task_history table which can also be queried by SQL.

    To learn more, see:

  • Filesystem-Hosted Models Provider: Graduated to Release Candidate (RC). To learn more, see the Filesystem-Hosted Models Provider Documentation.

  • HuggingFace Models Provider: Graduated to Release Candidate (RC). To learn more, see the HuggingFace Models Provider Documentation.

  • Spice.ai Cloud Platform Catalog: Graduated to Beta.

Contributorsโ€‹

  • @phillipleblanc
  • @johnnynunez
  • @Sevenannn
  • @sgrebnov
  • @peasee
  • @Jeadie
  • @lukekim

New Contributorsโ€‹

Breaking Changesโ€‹

No breaking changes.

Cookbook Updatesโ€‹

Upgradingโ€‹

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

CLI:

spice upgrade

Homebrew:

brew upgrade spiceai/spiceai/spice

Docker:

Pull the spiceai/spiceai:1.0.2 image:

docker pull spiceai/spiceai:1.0.2

For available tags, see DockerHub.

Helm:

helm repo update
helm upgrade spiceai spiceai/spiceai

What's Changedโ€‹

Dependenciesโ€‹

No major dependency changes.

Changelogโ€‹

- Update release branch naming by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4539
- ready for arm buildings by @johnnynunez in https://github.com/spiceai/spiceai/pull/4502
- Bump helm chart version to 1.0.1 by @Sevenannn in https://github.com/spiceai/spiceai/pull/4542
- Include 1.0.1 as supported version in security.md by @Sevenannn in https://github.com/spiceai/spiceai/pull/4545
- Update CI to build on hosted windows runners by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4540
- docs: Update Windows install by @peasee in https://github.com/spiceai/spiceai/pull/4551
- Fix spark spicepod for test operator by @Sevenannn in https://github.com/spiceai/spiceai/pull/4555
- Improve hugging face model chat error by @Sevenannn in https://github.com/spiceai/spiceai/pull/4554
- fix: Update Windows E2E install by @peasee in https://github.com/spiceai/spiceai/pull/4557
- feat: Add Spice Cloud Catalog Spicepod, release Alpha by @peasee in https://github.com/spiceai/spiceai/pull/4561
- Fix huggingface embedding errors by @Sevenannn in https://github.com/spiceai/spiceai/pull/4558
- feat: Load table schemas through REST for Spice Cloud Catalog by @peasee in https://github.com/spiceai/spiceai/pull/4563
- Add upgrade instruction in release note by @Sevenannn in https://github.com/spiceai/spiceai/pull/4548
- Add federated source information to refresh errors by @sgrebnov in https://github.com/spiceai/spiceai/pull/4560
- docs: Update ROADMAP.md by @peasee in https://github.com/spiceai/spiceai/pull/4566
- Merge mistral upstream by @Jeadie in https://github.com/spiceai/spiceai/pull/4562
- Fix windows build by @Sevenannn in https://github.com/spiceai/spiceai/pull/4574
- feat: Update Spice Cloud Catalog errors, release as Beta by @peasee in https://github.com/spiceai/spiceai/pull/4575
- docs: Add TOC to README.md by @peasee in https://github.com/spiceai/spiceai/pull/4538
- Updates to spiceai/mistral.rs by @Jeadie in https://github.com/spiceai/spiceai/pull/4580
- Improve refresh error tracing by @sgrebnov in https://github.com/spiceai/spiceai/pull/4576
- Add HTTP consistency & overhead to testoperator dispatch tool by @Jeadie in https://github.com/spiceai/spiceai/pull/4556
- Fix append mode refresh with MySQL Data Connector by @sgrebnov in https://github.com/spiceai/spiceai/pull/4583
- fix: Retry flaky tests by @peasee in https://github.com/spiceai/spiceai/pull/4577
- Fix E2E models test build on macOS runners by @sgrebnov in https://github.com/spiceai/spiceai/pull/4585
- spice trace chat support in CLI by @Jeadie in https://github.com/spiceai/spiceai/pull/4582
- Include hf test specs, enable ready_wait in workflow by @Sevenannn in https://github.com/spiceai/spiceai/pull/4584
- Add paths verification when loading models by @sgrebnov in https://github.com/spiceai/spiceai/pull/4591
- Add generation_config.json support for Filesystem models by @sgrebnov in https://github.com/spiceai/spiceai/pull/4592
- Promote Filesystem model provider to RC by @sgrebnov in https://github.com/spiceai/spiceai/pull/4593
- docs: Add models grading criteria by @peasee in https://github.com/spiceai/spiceai/pull/4550
- Fix typo in Alpha Release Criteria (models) by @sgrebnov in https://github.com/spiceai/spiceai/pull/4588
- fix: Retry AI integration tests by @peasee in https://github.com/spiceai/spiceai/pull/4595
- Run LLM integration tests on Macs; add running local models by @Jeadie in https://github.com/spiceai/spiceai/pull/4495
- Update version to 1.0.2 by @sgrebnov in https://github.com/spiceai/spiceai/pull/4594
- feat: Schedule testoperator by @peasee in https://github.com/spiceai/spiceai/pull/4503
- Improve UX of downloading GGUF from HF by @Jeadie in https://github.com/spiceai/spiceai/pull/4601
- Improve spice trace CLI command by @sgrebnov https://github.com/spiceai/spiceai/pull/4629
- Improve the UX of using huggingface models & embeddings by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4623
- GGUF, hide metadata by @Jeadie in https://github.com/spiceai/spiceai/pull/4631
- Promote hugging face to rc by @Sevenannn in https://github.com/spiceai/spiceai/pull/4626
- Endgame Issue template improvements by @lukekim in https://github.com/spiceai/spiceai/pull/4647
- feat: setup sccache for PR checks by @peasee in https://github.com/spiceai/spiceai/pull/4652
- Run build_and_release_cuda.yml when crates/llms/Cargo.toml changes by @Jeadie in https://github.com/spiceai/spiceai/pull/4648
- Update E2E installation tests to match model runtime version by @sgrebnov in https://github.com/spiceai/spiceai/pull/4653
- fix: Postgres LargeUtf8 is equal to Utf8 by @peasee in https://github.com/spiceai/spiceai/pull/4664
- Fix eager string formatting in mistral.rs by @Jeadie in https://github.com/spiceai/spiceai/pull/4665
- Better error for spicepod parsing by @Sevenannn in https://github.com/spiceai/spiceai/pull/4632
- Update datafusion-table-providers (MySQL improvements) by @sgrebnov in https://github.com/spiceai/spiceai/pull/4670
- Handle delta tables partitioned by a date column with large date values by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4672

**Full Changelog**: https://github.com/spiceai/spiceai/compare/v1.0.1...v1.0.2

Resourcesโ€‹

Communityโ€‹

Spice.ai started with the vision to make AI easy for developers. We are building Spice.ai in the open and with the community. Reach out on Discord or by email to get involved.