PageSourceSearch

https://spiceai.org/assets/js/a7a93e17.2a3699fc.js

js spiceai.org collected 2026-10-02 11:07:05 UTC 14,776 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["128798"],{201450(e,n,i){i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>o});var s=i(687444),r=i(474848),t=i(28453);let a={date:new Date("2026-02-10T00:00:00.000Z"),title:"Spice v1.11.1 (Feb 10, 2026)",type:"blog",authors:["jeadie"],tags:["release","cayenne","data-connector","dynamodb","flightsql"]},c,l={authorsImageUrls:[void 0]},o=[{value:"What's New in v1.11.1",id:"whats-new-in-v1111",level:2},{value:"Spice Cayenne Accelerator Improvements",id:"spice-cayenne-accelerator-improvements",level:3},{value:"Data Connector Improvements",id:"data-connector-improvements",level:3},{value:"Other Improvements",id:"other-improvements",level:3},{value:"Contributors",id:"contributors",level:2},{value:"Breaking Changes",id:"breaking-changes",level:2},{value:"Cookbook Updates",id:"cookbook-updates",level:2},{value:"Upgrading",id:"upgrading",level:2},{value:"What's Changed",id:"whats-changed",level:2},{value:"Changelog",id:"changelog",level:3}];function h(e){let n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"Announcing the release of Spice v1.11.1! \u{1F6E0}\uFE0F"}),"\n",(0,r.jsxs)(n.p,{children:["v1.11.1 is a patch release improving ",(0,r.jsx)(n.a,{href:"https://spiceai.org/docs/components/data-accelerators/cayenne",children:"Spice Cayenne"})," accelerator reliability and performance, enhancing ",(0,r.jsx)(n.strong,{children:"DynamoDB Streams"})," and ",(0,r.jsx)(n.strong,{children:"HTTP"})," data connectors, and fixing issues in ",(0,r.jsx)(n.strong,{children:"Federated Task History"})," and ",(0,r.jsx)(n.strong,{children:"FlightSQL"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"whats-new-in-v1111",children:"What's New in v1.11.1"}),"\n",(0,r.jsx)(n.h3,{id:"spice-cayenne-accelerator-improvements",children:"Spice Cayenne Accelerator Improvements"}),"\n",(0,r.jsxs)(n.p,{children:["This release includes stability and performance fixes for the ",(0,r.jsx)(n.a,{href:"https://spiceai.org/docs/components/data-accelerators/cayenne",children:"Spice Cayenne"})," accelerator:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Row-based Deletion Logic"}),": Refactored row-based delete operations to use per-file deletion vectors with ",(0,r.jsx)(n.code,{children:"RoaringBitmap"}),". Deletion scans now use Vortex-native streaming with filter pushdown and project only row indices, achieving zero data I/O for delete operations."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Constraints & On Conflict"}),": ",(0,r.jsx)(n.code,{children:"constraints"})," and ",(0,r.jsx)(n.code,{children:"on_conflict"})," configurations are now automatically inferred from federated table metadata, enabling datasets like ",(0,r.jsx)(n.a,{href:"https://spiceai.org/docs/components/data-connectors/dynamodb",children:"DynamoDB"})," to work without explicitly defining ",(0,r.jsx)(n.code,{children:"primary_key"})," in the Spicepod."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Partitioned Table Deletion"}),": Fixed an issue where ",(0,r.jsx)(n.code,{children:"DELETE"})," operations on partitioned Cayenne tables failed."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Data Integrity"}),": Fixed two issues with acceleration snapshot handling: protected snapshots are now included in conflict detection keyset scans (preventing duplicate key creation during append refresh), and snapshot cleanup no longer deletes protected snapshots."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"data-connector-improvements",children:"Data Connector Improvements"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"DynamoDB Streams"}),": Added automatic re-bootstrapping when the stream lag exceeds DynamoDB shard retention (24h). Configurable via the new ",(0,r.jsx)(n.code,{children:"lag_exceeds_shard_retention_behavior"})," parameter with values ",(0,r.jsx)(n.code,{children:"error"})," (default), ",(0,r.jsx)(n.code,{children:"ready_before_load"}),", or ",(0,r.jsx)(n.code,{children:"ready_after_load"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"HTTP Connector"}),": HTTP responses now include a ",(0,r.jsx)(n.code,{children:"response_status"})," column (UInt16). 4xx responses (e.g., 404 Not Found) are treated as valid queryable data and cached normally. 5xx responses are retried with backoff, returned to the user, but excluded from the cache to prevent transient server errors from polluting cached results."]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"other-improvements",children:"Other Improvements"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Reliability"}),": Added retries for ",(0,r.jsx)(n.code,{children:"SnapshotManager"})," operations and general snapshot reliability improvements."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Reliability"}),": Fixed handling of timestamp precision mismatches in ",(0,r.jsx)(n.a,{href:"https://spiceai.org/docs/features/caching",children:"query result caching"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Reliability"}),": Fixed a double projection issue in federated task history queries that caused ",(0,r.jsx)(n.code,{children:"Schema error: project index out of bounds"})," errors in cluster mode."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Developer Experience"}),": Added cookie middleware support to the ",(0,r.jsx)(n.a,{href:"https://spiceai.org/docs/components/data-connectors/flightsql",children:"FlightSQL"})," data connector."]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"contributors",children:"Contributors"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/phillipleblanc",children:"@phillipleblanc"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"breaking-changes",children:"Breaking Changes"}),"\n",(0,r.jsx)(n.p,{children:"No breaking changes."}),"\n",(0,r.jsx)(n.h2,{id:"cookbook-updates",children:"Cookbook Updates"}),"\n",(0,r.jsxs)(n.p,{children:["No major cookbook updates. The ",(0,r.jsx)(n.a,{href:"https://spiceai.org/cookbook",children:"Spice Cookbook"})," includes 86 recipes to help you get started with Spice quickly and easily."]}),"\n",(0,r.jsx)(n.h2,{id:"upgrading",children:"Upgrading"}),"\n",(0,r.jsx)(n.p,{children:"To upgrade to v1.11.1, use one of the following methods:"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"CLI"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-console",children:"spice upgrade\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Homebrew"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-console",children:"brew upgrade spiceai/spiceai/spice\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Docker"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["Pull the ",(0,r.jsx)(n.code,{children:"spiceai/spiceai:1.11.1"})," image:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-console",children:"docker pull spiceai/spiceai:1.11.1\n"})}),"\n",(0,r.jsxs)(n.p,{children:["For available tags, see ",(0,r.jsx)(n.a,{href:"https://hub.docker.com/r/spiceai/spiceai/tags",children:"DockerHub"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Helm"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-console",children:"helm repo update\r\nhelm upgrade spiceai spiceai/spiceai --version 1.11.1\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"AWS Mar
1ketplace"}),":"]}),"\n",(0,r.jsxs)(n.p,{children:["Spice is available in the ",(0,r.jsx)(n.a,{href:"https://aws.amazon.com/marketplace/pp/prodview-jmf6jskjvnq7i",children:"AWS Marketplace"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"whats-changed",children:"What's Changed"}),"\n",(0,r.jsx)(n.h3,{id:"changelog",children:"Changelog"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Cayenne: row-based delete logic improvements by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9237",children:"#9237"})]}),"\n",(0,r.jsxs)(n.li,{children:["Proper support for ",(0,r.jsx)(n.code,{children:"constraints"}),"/",(0,r.jsx)(n.code,{children:"on_conflict"})," in Cayenne Acceleration by ",(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9335",children:"#9335"})]}),"\n",(0,r.jsxs)(n.li,{children:["Retries for SnapshotManager by ",(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9334",children:"#9334"})]}),"\n",(0,r.jsxs)(n.li,{children:["fix(cayenne): Include protected snapshots in conflict detection keyset scan by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9176",children:"#9176"})]}),"\n",(0,r.jsxs)(n.li,{children:["fix(cayenne): Fix data loss by preserving protected snapshots during cleanup by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9182",children:"#9182"})]}),"\n",(0,r.jsxs)(n.li,{children:["Simplify retention filter expressions before pushdown by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9244",children:"#9244"})]}),"\n",(0,r.jsxs)(n.li,{children:["Fix test_retention_complex_sql by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9270",children:"#9270"})]}),"\n",(0,r.jsxs)(n.li,{children:["runtime: avoid double projection in federated task history by ",(0,r.jsx)(n.a,{href:"https://github.com/phillipleblanc",children:"@phillipleblanc"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9326",children:"#9326"})]}),"\n",(0,r.jsxs)(n.li,{children:["feat(http): Return all HTTP responses as data, skip caching 5xx by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9313",children:"#9313"})]}),"\n",(0,r.jsxs)(n.li,{children:["Snapshots Improvements by ",(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9318",children:"#9318"})]}),"\n",(0,r.jsxs)(n.li,{children:["fix(caching): Handle timestamp precision mismatch and add more tests by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9315",children:"#9315"})]}),"\n",(0,r.jsxs)(n.li,{children:["DynamoDB Streams Table Rebootstrapping by ",(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9305",children:"#9305"})]}),"\n",(0,r.jsxs)(n.li,{children:["Fix Cayenne partitioned table deletion support by ",(0,r.jsx)(n.a,{href:"https://github.com/sgrebnov",children:"@sgrebnov"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9267",children:"#9267"})]}),"\n",(0,r.jsxs)(n.li,{children:["FlightSQL: add cookie middleware support by ",(0,r.jsx)(n.a,{href:"https://github.com/phillipleblanc",children:"@phillipleblanc"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9282",children:"#9282"})]}),"\n",(0,r.jsxs)(n.li,{children:["Apply ",(0,r.jsx)(n.code,{children:"SchemaCastScanExec"})," before applying changes in ",(0,r.jsx)(n.code,{children:"process_upsert_batch"})," by ",(0,r.jsx)(n.a,{href:"https://github.com/krinart",children:"@krinart"})," in ",(0,r.jsx)(n.a,{href:"https://github.com/spiceai/spiceai/pull/9297",children:"#9297"})]}),"\n"]})]})}function d(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},28453(e,n,i){i.d(n,{R:()=>a,x:()=>c});var s=i(296540);let r={},t=s.createContext(r);function a(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(t.Provider,{value:n},e.children)}},687444(e){e.exports=JSON.parse('{"permalink":"/releases/v1.11.1","editUrl":"https://github.com/spiceai/docs/edit/trunk/website/releases/v1.11.1.md","source":"@site/releases/v1.11.1.md","title":"Spice v1.11.1 (Feb 10, 2026)","description":"Announcing the release of Spice v1.11.1! \u{1F6E0}\uFE0F","date":"2026-02-10T00:00:00.000Z","tags":[{"inline":false,"label":"release","permalink":"/releases/tags/releases","description":"Release notes and updates"},{"inline":false,"label":"cayenne","permalink":"/releases/tags/cayenne","description":"Cayenne (Vortex) data accelerator related topics and usage"},{"inline":false,"label":"data-connector","permalink":"/releases/tags/data-connectors","description":"Data connector tools and integrations"},{"inline":false,"label":"dynamodb","permalink":"/releases/tags/dynamodb","description":"DynamoDB database topics and usage"},{"inline":false,"label":"FlightSQL","permalink":"/releases/tags/flightsql","description":"FlightSQL related topics and usage."}],"readingTime":3.78,"hasTruncateMarker":false,"authors":[{"name":"Jack Eadie","title":"Member of Technical Staff at Spice AI","url":"https://github.com/Jeadie","page":{"permalink":"/releases/authors/jeadie"},"socials":{"github":"https://github.com/Jeadie","x":"https://x.com/_jeadie","linkedin":"https://www.linkedin.com/in/jack-eadie/"},"imageURL":"https://github.com/Jeadie.png","key":"jeadie"}],"frontMatter":{"date":"2026-02-10T00:00:00.000Z","title":"Spice v1.11.1 (Feb 10, 2026)","type":"blog","authors":["jeadie"],"tags":["release","cayenne","data-connector","dynamodb","flightsql"]},"unlisted":false,"lastUpdatedAt":1790868039000,"lastUpdatedBy":"emma","prevItem":{"title":"Spice v2.0-rc.1 (Mar 4, 2026)","permalink":"/releases/v2.0-rc.1"},"nextItem":{"title":"Spice v1.11.0 (Jan 28, 2026)","permalink":"/releases/v1.11.0"}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.