fix: Cassandra Entity Key Serialization + Warning #370
Merged
Conversation
…and Valkey stores Cassandra was hardcoding serialization version 2, which silently diverged from the Python default (v3) and from the Valkey store. Both stores now resolve the version from feature_store.yaml (entity_key_serialization_version, defaulting to v3 when unset), matching Python's SerializeEntityKey behavior. Also adds a shared warnPotentialEntityKeyVersionMismatch helper (extracted into entitykeyserialization.go) that fires a single deduplicated warning when an online read returns zero data for all requested feature views — a possible indicator of a write/read version mismatch. Covered by new unit tests in both store test files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The test data parquet files have timestamps from April 2025. When using materialize-incremental with TTL=0 feature views, Feast defaults to a 1-year lookback window. Once the current date passed April 2026, the materialization found 0 rows to ingest, causing all Go integration tests to fail. Switch from materialize-incremental to materialize with an explicit start time of 2025-01-01 to ensure test data is always included. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The test parquet file go/internal/test/feature_repo/driver_stats.parquet contains timestamps from 2021-2022, not 2025. The previous commit used 2025-01-01 as the start date which excluded all test data. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sync operator test configuration with upstream feast-dev/feast: - Go version: 1.22.9 → 1.25.0 - ENVTEST_K8S_VERSION: 1.30.0 → 1.31.0 - ENVTEST_VERSION: release-0.18 → release-0.21 - Add GOTOOLCHAIN env var to test command - Add workflow concurrency to cancel in-progress runs The older envtest version was failing to download kubebuilder assets (etcd not found in $PATH) on newer Ubuntu CI runners. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This reverts commit 38fc7ff.
Update operator CI and tooling to work with Go 1.25: - Go version: 1.22.9 → 1.25.0 - controller-tools: v0.15.0 → v0.18.0 (fixes x/tools compile error) - golangci-lint: v1.59.1 → v2.12.2 (v1.x incompatible with Go 1.25) - envtest: release-0.18 → release-0.21 (fixes etcd not found) - Migrate .golangci.yml to v2 config format - Regenerate CRDs, RBAC, and docs with new tool versions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The new golangci-lint v2 govet checker requires using reflect.Pointer (the newer name) instead of the deprecated reflect.Ptr constant. This aligns with the upstream feast-dev/feast repository. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
omirandadev
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cassandra was hardcoding serialization version 2 at read time, which means anyone who writes to Cassandra with with entity key serialization version 3 is unable to retrieve data.
Also adds a shared warnPotentialEntityKeyVersionMismatch helper (extracted into
entitykeyserialization.go) that fires a single deduplicated warning when an online read returns zero data for all requested feature views — a possible indicator of a write/read version mismatch. Covered by new unit tests in both store test files.What this PR does / why we need it:
Which issue(s) this PR fixes:
Misc