docs(caching): a declared primary_key is a row constraint, not the cache key
The caching refresh-mode page said a declared `acceleration.primary_key`
replaces request metadata as the cache key, and its worked example passed
a YAML list. Neither is true.
A cache lookup is built from the request alone, so a key over response
fields could not serve one even in principle; `primary_key` is a
uniqueness constraint on the rows the accelerator stores. And
`primary_key` deserializes as a string in every release, so the list form
never parsed — the whole Spicepod is rejected at load.
The example now projects the response fields it keys on with a
`columns:` block and passes the key as a parenthesized string. That
projection is only available from v2.0.0, so the 1.10.x and 1.11.x copies
drop the example instead and state what a key can name there.
a month ago
Check in versioned docs and remove generate-versions script (#1386)
* Check in versioned docs and remove generate-versions script
Transition from per-branch versioning to all versions checked in.
Generated versioned docs from release branches 1.5 through 1.11.
Removed generate-versions.sh and updated .gitignore.
* Remove generate-versions script from build workflow
Versioned docs are now checked in directly. Remove the script
invocation from package.json build, drop the fetch-depth: 0 from CI
(no longer needed), and update README to reflect the new process.
8 months ago
docs(retention): retention_sql alone satisfies an enabled policy, and an incomplete one is now reported (#2174)
Sources: spiceai/spiceai#13857
Co-authored-by: claudespice <claudespice@users.noreply.github.com>
a month ago
docs(hash-index): the row-count threshold never gated index creation; partitioned_arrow is supported (#2095)
* docs(hash-index): the row-count threshold is never applied; partitioned_arrow is supported; two metrics are histograms
index_threshold()/try_build() are dead outside benchmarks -- both
IndexedMemTable construction paths call .build() unconditionally, so the
documented 256 x CPU_cores minimum has never gated index creation in any
release. is_hash_index_enabled() matches Arrow | PartitionedArrow since
v2.0.0. hash_index_entries and hash_index_memory_bytes are registered as
u64_histogram, not gauges.
* docs(arrow): the hash index stores no key bytes, so index memory is per-entry not per-key
ShardTable holds only Vec<Slot> (8-byte hash + packed 8-byte RowLocation);
keys are never stored, which is why get_by_key documents a hash-collision
risk. 'plus the key size' overstated the footprint for wide string keys.
---------
Co-authored-by: claudespice <claudespice@users.noreply.github.com>
2 months ago
fix: Add missing acceleration engine modes and Turso snapshot support
The data accelerator tables were missing file_create and file_update
modes for DuckDB, SQLite, and Turso. The SQLite engine selection table
was also missing memory mode. The snapshot mode page omitted Turso
from the list of snapshot-capable engines.
Verified against spiceai/spiceai trunk:
- file_create: introduced in v1.10.0 (commit 9b07efea3)
- file_update: introduced in vNext only (commit d26f07647)
- Turso snapshot reload: supports_snapshot_reload() returns true
5 months ago
Check in versioned docs and remove generate-versions script (#1386)
* Check in versioned docs and remove generate-versions script
Transition from per-branch versioning to all versions checked in.
Generated versioned docs from release branches 1.5 through 1.11.
Removed generate-versions.sh and updated .gitignore.
* Remove generate-versions script from build workflow
Versioned docs are now checked in directly. Remove the script
invocation from package.json build, drop the fetch-depth: 0 from CI
(no longer needed), and update README to reflect the new process.
8 months ago
Improve documentation formatting for clarity and consistency (#1389)
* Refine documentation across various sections for clarity and consistency
- Updated descriptions in datasets, models, runtime, and views documentation to enhance readability and precision.
- Improved explanations regarding retry mechanisms and refresh attempts in acceleration settings.
- Clarified the purpose and functionality of the `WITH` clause in SQL documentation.
- Enhanced troubleshooting guidance with detailed common issues and solutions for dataset loading, query performance, and AI chat results.
- Revised use case descriptions for agentic apps, edge AI, federated MCP server, object-store AI engine, and more to improve clarity and impact.
- Streamlined language throughout the documentation to ensure consistency and better user understanding.
* Improve documentation formatting for clarity and consistency across multiple sections
* Apply suggestion from @lukekim
* Update documentation links for consistency and clarity across multiple sections
7 months ago
docs(snapshots): snapshot files carry the engine extension, not .db
Since v1.11.1 (spiceai/spiceai#9318) the snapshot filename ends in the
acceleration engine's extension — .duckdb, .sqlite, .cayenne or .turso —
via AccelerationEngine::snapshot_extension(). The examples still showed the
pre-v1.11.1 ".db" suffix.
Scoped to v1.11.x and later; 1.8.x-1.10.x correctly document ".db", which
is what snapshot_filename() hardcoded in those releases.
a month ago