GeezerVison is showing github.com — feat: Add SingleStore online store support for feature view versioning by antznette1 · Pull Request #6195 · feast-dev/feast
Conversation
antznette1
commented
Mar 29, 2026
•
edited by devin-ai-integration
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
What this PR does / why we need it:
This PR adds online feature view versioning support for the SingleStore online store when registry.enable_online_feature_view_versioning is enabled.
It updates SingleStore’s table routing to read/write from versioned namespaces (e.g. {project}_{feature_view}_v{N}) so version-qualified refs like driver_stats@v1:avg_daily_trips can be served from the correct underlying online table. It also updates the global online-store guard to allow version-qualified reads for SingleStore (and still reject unsupported stores) when versioning is enabled.
Additionally, it adds an integration/universal test covering SingleStore version-qualified reads.
Which issue(s) this PR fixes:
Fixes #6181
Checks
- I've made sure the tests are passing.
- My commits are signed off (
git commit -s)
- My PR title follows conventional commits format
Testing Strategy
- Unit tests
- Integration tests
- Manual tests
- Testing is not required for this change
Misc
Notes:
- Version-qualified reads are only allowed when
registry.enable_online_feature_view_versioning is enabled; otherwise VersionedOnlineReadNotSupported is raised.
- The new SingleStore integration/universal test may be skipped locally if the universal SingleStore environment is not part of the parametrized test matrix (it should run in CI where SingleStore is enabled).
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
|
@antznette1 Can you please take a look at #6193, it has shared helper added now for table name and pattern for deleting all versions in teardown ?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
…singlestore.py
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: antznette1 <[email protected]>
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
@ntkathole , Please can I get a review to this PR?
@antznette1 Sure, please fix the conflicts and the tests
Conflicts has been fixed, can we proceed?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ntkathole
commented
Apr 22, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
@antznette1 Can you please take a look at #6193, it has shared helper added now for table name and pattern for deleting all versions in teardown ?
@antznette1 I mentioned this to see if we really need registry object passing down the calls or can be resolved with the same approach that PR to handle version cleanup ?
def teardown(self, config, tables, entities, registry=None) -> None:
project = config.project
versioning = config.registry.enable_online_feature_view_versioning
with self._get_cursor(config) as cur:
for table in tables:
if not versioning:
_drop_table_and_index(cur, project, table, enable_versioning=False)
else:
# Discover all versioned tables from DB — same as MySQL
base = f"{project}_{table.name}"
cur.execute(
"SELECT table_name FROM information_schema.tables "
"WHERE table_schema = DATABASE() AND "
"(table_name = %s OR table_name REGEXP %s)",
(base, f"^{base}_v[0-9]+$"),
)
for (name,) in cur.fetchall():
cur.execute(f"DROP INDEX IF EXISTS {_quote_identifier(name + '_ek')} "
f"ON {_quote_identifier(name)}")
cur.execute(f"DROP TABLE IF EXISTS {_quote_identifier(name)}")
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you elaborate on why some of the changes are included in this PR? feels like maybe some other items snuck in. 😅
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
antznette1
commented
Apr 23, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
can you elaborate on why some of the changes are included in this PR? feels like maybe some other items snuck in. 😅
My bad.
The few unrelated changes snuck into this PR while I was iterating locally (PGVector container wait tweaks, metrics import fallback, and a HybridOnlineStore teardown refactor). They’re not required for SingleStore versioned online store support, so I’ll reverted them locally to keep this PR focused strictly on SingleStore versioning + teardown behavior. I’ll push the revert commit now.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Devin Review found 1 new potential issue.
View 19 additional findings in Devin Review.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
|
Good day,
please, I am still waiting for a review on this PR
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
This branch has not been deployed
No deployments
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
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.
|