Skip to content

docs(caching): the pingora cache engine is Enterprise-only and falls back silently - #2188

Merged
lukekim merged 1 commit into
trunkfrom
fix/caching-pingora-enterprise-only
Sep 10, 2026
Merged

lukekim merged 1 commit into
trunkfrom
fix/caching-pingora-enterprise-only

Conversation

@claudespice

Copy link
Copy Markdown
Contributor

Summary

#2186 added a caching.*.engine row and a "Choosing an engine" section to the OSS caching page, offering pingora as a plain selectable value alongside moka. Two things about it are missing:

1. It is not in the open source distribution. pingora is a Cargo feature, and it is absent from spiced's default feature list. Released images build --features release,models on top of default (release = []), so no published open source binary or image contains the Pingora backend at all — the whole module is behind #[cfg(feature = "pingora")]. Per the docs convention for capabilities gated out of the default build, this needs the Enterprise callout.

2. Selecting it on such a build is a silent downgrade, not an error. CacheEngine lives in spicepod and is not feature-gated, so engine: pingora parses everywhere. The dispatch then does:

CacheEngine::Pingora => {
    #[cfg(feature = "pingora")] { … PingoraBackend … }
    #[cfg(not(feature = "pingora"))] {
        tracing::warn!("{PINGORA_ENTERPRISE_ONLY_MESSAGE} Falling back to the Moka cache engine.");
        … CacheBackendEnum::MokaFallback(…)
    }
}

A user who reads the page, sets engine: pingora, and sees the runtime start normally is on Moka. MokaFallback also reports engine() as CacheEngine::Moka, so the startup line is the honest signal, which is why the note points at it rather than at the configured value.

3. pingora has no TinyLFU implementation. The same page documents eviction_policy: tiny_lfu; combined with engine: pingora it warns and uses LRU.

What changed

website/docs/features/caching/index.md only:

  • engine row now says pingora requires an Enterprise build.
  • The pingora bullet records that eviction_policy: tiny_lfu is not implemented there, quoting the warning.
  • Added the standard :::note[Enterprise edition] callout with the verbatim fallback warning and the Initialized … cache; … engine: Moka startup line to check.

Both quoted strings are static format templates with no substituted fields, so they are greppable in a log exactly as written. The startup line does interpolate the configured size and TTL, which the text says explicitly.

Source refs (spiceai/spiceai @ 2f10331)

Scope

vNext only — the engine parameter is not documented in any versioned snapshot, so there is nothing to sweep. reference/distributions.md was left alone: its feature-gated section is scoped to data connectors, and widening it to cache engines is a structural change rather than an accuracy fix.

Test plan

  • cd website && npm run build passes
  • Cross-page grep: grep -rn "pingora" website/docs website/versioned_docs — the only non-acknowledgements hits are on this page
  • Files updated: 1

…back silently

The `engine` row and its "Choosing an engine" section offered `pingora` as a
plain value on docs.spiceai.org. `pingora` is a Cargo feature that is not in the
`spiced` default feature set, so no published open source binary or image contains
the backend, and `engine: pingora` there warns and runs on Moka instead of failing.

Adds the standard Enterprise callout, quotes the real fallback warning and the
startup line that names the engine actually in use, and records that pingora has
no TinyLFU implementation.
@github-actions

github-actions Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

✅ Pull with Spice Passed

Passing checks:

  • ✅ Title meets minimum length requirement (10 characters)
  • ✅ Has at least one of the required labels: area/blog, area/docs, area/cookbook, dependencies
  • ✅ No banned labels detected
  • ✅ Has at least one assignee: claudespice

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Pull with Spice Failed

Passing checks:

  • ✅ Title meets minimum length requirement (10 characters)
  • ✅ Has at least one of the required labels: area/blog, area/docs, area/cookbook, dependencies
  • ✅ No banned labels detected

Failed checks:

  • ❌ At least one assignee is required for this pull request.

Please address these issues and update your pull request.

@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://91b82220.spiceai-org-website.pages.dev

@lukekim
lukekim merged commit 961dfb2 into trunk Sep 10, 2026
6 of 9 checks passed
@lukekim
lukekim deleted the fix/caching-pingora-enterprise-only branch September 10, 2026 15:07
lukekim pushed a commit that referenced this pull request Sep 12, 2026
The version-2.3.x snapshot was cut hours before #2188, so the newest
release's caching page still presents `engine: pingora` as an ordinary
open source backend. On a stock spiced the value parses, the runtime
warns and runs Moka instead.

This branch was successfully deployed

1 active deployment
preview — c3a66128 Deployed Sep 10, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants