Skip to content

Conversation

@jyejare
Copy link
Contributor

@jyejare jyejare commented Apr 8, 2025

What this PR does / why we need it:

  • Shows deprecation warning for usage of Entity serialization less than version 2
  • A util for re-serialization of entity ver 2 to ver 3
  • A guide for reserializing the entity keys in an offline/online store
  • A test case ensuring successful re-serilization of entity key

Which issue(s) this PR fixes:

Not fully but in the next release the serialization 2 would be completely deprecated to resolve #5180

Misc

@jyejare jyejare requested a review from a team as a code owner April 8, 2025 16:16
@jyejare jyejare force-pushed the version2_dep_announcement branch from 468ad06 to 3020016 Compare April 8, 2025 16:19
@jyejare jyejare changed the title Serialization version 2 deprecation notice doc: Serialization version 2 deprecation notice Apr 8, 2025
@jyejare jyejare changed the title doc: Serialization version 2 deprecation notice docs: Serialization version 2 deprecation notice Apr 8, 2025
@HaoXuAI
Copy link
Collaborator

HaoXuAI commented Apr 10, 2025

This is nice but needs to be declared more explicitly. Can you update the all docs/Readme that has entity_key_serialization_version=2 to 3?

@HaoXuAI HaoXuAI changed the title docs: Serialization version 2 deprecation notice feat: Serialization version 2 deprecation notice Apr 10, 2025
@ntkathole
Copy link
Member

@jyejare
Copy link
Contributor Author

jyejare commented Apr 10, 2025

@HaoXuAI @ntkathole This PR is just a notice of deprecation in the current release and helper function for users, that would help users to move to serialization version 3.

In next release, we will complete deprecating version 2 and below and stick to version 3. That time I will resolve your current queries @HaoXuAI @ntkathole :)

@HaoXuAI
Copy link
Collaborator

HaoXuAI commented Apr 13, 2025

@HaoXuAI @ntkathole This PR is just a notice of deprecation in the current release and helper function for users, that would help users to move to serialization version 3.

In next release, we will complete deprecating version 2 and below and stick to version 3. That time I will resolve your current queries @HaoXuAI @ntkathole :)

sounds good!

Copy link
Collaborator

@HaoXuAI HaoXuAI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@HaoXuAI HaoXuAI merged commit 327d99d into feast-dev:master Apr 13, 2025
33 of 39 checks passed
" into the online store. Specifying `entity_key_serialization_version` to 2 is recommended for"
" new projects. ",
RuntimeWarning,
"The serialization version 2 and below would be deprecated in the next release. "

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not

Suggested change
"The serialization version 2 and below would be deprecated in the next release. "
"The serialization version 2 and below will be deprecated in the next release. "

tchughesiv pushed a commit to tchughesiv/feast that referenced this pull request Apr 14, 2025
Serialization version 2 deprecation notice

Signed-off-by: jyejare <[email protected]>
franciscojavierarceo pushed a commit that referenced this pull request Apr 29, 2025
# [0.49.0](v0.48.0...v0.49.0) (2025-04-29)

### Bug Fixes

* Adding brackets to unit tests ([c46fea3](c46fea3))
* Adding logic back for a step ([2bb240b](2bb240b))
* Adjustment for unit test action ([a6f78ae](a6f78ae))
* Allow get_historical_features with only On Demand Feature View ([#5256](#5256)) ([0752795](0752795))
* CI adjustment ([3850643](3850643))
* Embed Query configuration breaks when switching between DataFrame and SQL ([#5257](#5257)) ([32375a5](32375a5))
* Fix for proto issue in utils ([1b291b2](1b291b2))
* Fix milvus online_read ([#5233](#5233)) ([4b91f26](4b91f26))
* Fix tests ([431d9b8](431d9b8))
* Fixed Permissions object parameter in example ([#5259](#5259)) ([045c100](045c100))
* Java CI [#12](#12) ([d7e44ac](d7e44ac))
* Java PR [#15](#15) ([a5da3bb](a5da3bb))
* Java PR [#16](#16) ([e0320fe](e0320fe))
* Java PR [#17](#17) ([49da810](49da810))
* Materialization logs ([#5243](#5243)) ([4aa2f49](4aa2f49))
* Moving to custom github action for checking skip tests ([caf312e](caf312e))
* Operator - remove default replicas setting from Feast Deployment ([#5294](#5294)) ([e416d01](e416d01))
* Patch java pr [#14](#14) ([592526c](592526c))
* Patch update for test ([a3e8967](a3e8967))
* Remove conditional from steps ([995307f](995307f))
* Remove misleading HTTP prefix from gRPC endpoints in logs and doc ([#5280](#5280)) ([0ee3a1e](0ee3a1e))
* removing id ([268ade2](268ade2))
* Renaming workflow file ([5f46279](5f46279))
* Resolve `no pq wrapper` import issue ([#5240](#5240)) ([d5906f1](d5906f1))
* Update actions to remove check skip tests ([#5275](#5275)) ([b976f27](b976f27))
* Update docling demo ([446efea](446efea))
* Update java pr [#13](#13) ([fda7db7](fda7db7))
* Update java_pr ([fa138f4](fa138f4))
* Update repo_config.py ([6a59815](6a59815))
* Update unit tests workflow ([06486a0](06486a0))
* Updated docs for docling demo ([768e6cc](768e6cc))
* Updating action for unit tests ([0996c28](0996c28))
* Updating github actions to filter at job level ([0a09622](0a09622))
* Updating Java CI ([c7c3a3c](c7c3a3c))
* Updating java pr to skip tests ([e997dd9](e997dd9))
* Updating workflows ([c66bcd2](c66bcd2))

### Features

* Add date_partition_column_format for spark source ([#5273](#5273)) ([7a61d6f](7a61d6f))
* Add Milvus tutorial with Feast integration ([#5292](#5292)) ([a1388a5](a1388a5))
* Add pgvector tutorial with PostgreSQL integration ([#5290](#5290)) ([bb1cbea](bb1cbea))
* Add ReactFlow visualization for Feast registry metadata ([#5297](#5297)) ([9768970](9768970))
* Add retrieve online documents v2 method into  pgvector  ([#5253](#5253)) ([6770ee6](6770ee6))
* Compute Engine Initial Implementation ([#5223](#5223)) ([64bdafd](64bdafd))
* Enable write node for compute engine ([#5287](#5287)) ([f9baf97](f9baf97))
* Local compute engine ([#5278](#5278)) ([8e06dfe](8e06dfe))
* Make transform on writes configurable for ingestion ([#5283](#5283)) ([ecad170](ecad170))
* Offline store update pull_all_from_table_or_query to make timestampfield optional ([#5281](#5281)) ([4b94608](4b94608))
* Serialization version 2 deprecation notice ([#5248](#5248)) ([327d99d](327d99d))
* Vector length definition moved to Feature View from Config  ([#5289](#5289)) ([d8f1c97](d8f1c97))
jfw-ppi pushed a commit to jfw-ppi/feast that referenced this pull request Jun 7, 2025
Serialization version 2 deprecation notice

Signed-off-by: jyejare <[email protected]>
Signed-off-by: Jacob Weinhold <[email protected]>
jfw-ppi pushed a commit to jfw-ppi/feast that referenced this pull request Jun 7, 2025
# [0.49.0](feast-dev/feast@v0.48.0...v0.49.0) (2025-04-29)

### Bug Fixes

* Adding brackets to unit tests ([c46fea3](feast-dev@c46fea3))
* Adding logic back for a step ([2bb240b](feast-dev@2bb240b))
* Adjustment for unit test action ([a6f78ae](feast-dev@a6f78ae))
* Allow get_historical_features with only On Demand Feature View ([feast-dev#5256](feast-dev#5256)) ([0752795](feast-dev@0752795))
* CI adjustment ([3850643](feast-dev@3850643))
* Embed Query configuration breaks when switching between DataFrame and SQL ([feast-dev#5257](feast-dev#5257)) ([32375a5](feast-dev@32375a5))
* Fix for proto issue in utils ([1b291b2](feast-dev@1b291b2))
* Fix milvus online_read ([feast-dev#5233](feast-dev#5233)) ([4b91f26](feast-dev@4b91f26))
* Fix tests ([431d9b8](feast-dev@431d9b8))
* Fixed Permissions object parameter in example ([feast-dev#5259](feast-dev#5259)) ([045c100](feast-dev@045c100))
* Java CI [feast-dev#12](feast-dev#12) ([d7e44ac](feast-dev@d7e44ac))
* Java PR [feast-dev#15](feast-dev#15) ([a5da3bb](feast-dev@a5da3bb))
* Java PR [feast-dev#16](feast-dev#16) ([e0320fe](feast-dev@e0320fe))
* Java PR [feast-dev#17](feast-dev#17) ([49da810](feast-dev@49da810))
* Materialization logs ([feast-dev#5243](feast-dev#5243)) ([4aa2f49](feast-dev@4aa2f49))
* Moving to custom github action for checking skip tests ([caf312e](feast-dev@caf312e))
* Operator - remove default replicas setting from Feast Deployment ([feast-dev#5294](feast-dev#5294)) ([e416d01](feast-dev@e416d01))
* Patch java pr [feast-dev#14](feast-dev#14) ([592526c](feast-dev@592526c))
* Patch update for test ([a3e8967](feast-dev@a3e8967))
* Remove conditional from steps ([995307f](feast-dev@995307f))
* Remove misleading HTTP prefix from gRPC endpoints in logs and doc ([feast-dev#5280](feast-dev#5280)) ([0ee3a1e](feast-dev@0ee3a1e))
* removing id ([268ade2](feast-dev@268ade2))
* Renaming workflow file ([5f46279](feast-dev@5f46279))
* Resolve `no pq wrapper` import issue ([feast-dev#5240](feast-dev#5240)) ([d5906f1](feast-dev@d5906f1))
* Update actions to remove check skip tests ([feast-dev#5275](feast-dev#5275)) ([b976f27](feast-dev@b976f27))
* Update docling demo ([446efea](feast-dev@446efea))
* Update java pr [feast-dev#13](feast-dev#13) ([fda7db7](feast-dev@fda7db7))
* Update java_pr ([fa138f4](feast-dev@fa138f4))
* Update repo_config.py ([6a59815](feast-dev@6a59815))
* Update unit tests workflow ([06486a0](feast-dev@06486a0))
* Updated docs for docling demo ([768e6cc](feast-dev@768e6cc))
* Updating action for unit tests ([0996c28](feast-dev@0996c28))
* Updating github actions to filter at job level ([0a09622](feast-dev@0a09622))
* Updating Java CI ([c7c3a3c](feast-dev@c7c3a3c))
* Updating java pr to skip tests ([e997dd9](feast-dev@e997dd9))
* Updating workflows ([c66bcd2](feast-dev@c66bcd2))

### Features

* Add date_partition_column_format for spark source ([feast-dev#5273](feast-dev#5273)) ([7a61d6f](feast-dev@7a61d6f))
* Add Milvus tutorial with Feast integration ([feast-dev#5292](feast-dev#5292)) ([a1388a5](feast-dev@a1388a5))
* Add pgvector tutorial with PostgreSQL integration ([feast-dev#5290](feast-dev#5290)) ([bb1cbea](feast-dev@bb1cbea))
* Add ReactFlow visualization for Feast registry metadata ([feast-dev#5297](feast-dev#5297)) ([9768970](feast-dev@9768970))
* Add retrieve online documents v2 method into  pgvector  ([feast-dev#5253](feast-dev#5253)) ([6770ee6](feast-dev@6770ee6))
* Compute Engine Initial Implementation ([feast-dev#5223](feast-dev#5223)) ([64bdafd](feast-dev@64bdafd))
* Enable write node for compute engine ([feast-dev#5287](feast-dev#5287)) ([f9baf97](feast-dev@f9baf97))
* Local compute engine ([feast-dev#5278](feast-dev#5278)) ([8e06dfe](feast-dev@8e06dfe))
* Make transform on writes configurable for ingestion ([feast-dev#5283](feast-dev#5283)) ([ecad170](feast-dev@ecad170))
* Offline store update pull_all_from_table_or_query to make timestampfield optional ([feast-dev#5281](feast-dev#5281)) ([4b94608](feast-dev@4b94608))
* Serialization version 2 deprecation notice ([feast-dev#5248](feast-dev#5248)) ([327d99d](feast-dev@327d99d))
* Vector length definition moved to Feature View from Config  ([feast-dev#5289](feast-dev#5289)) ([d8f1c97](feast-dev@d8f1c97))

Signed-off-by: Jacob Weinhold <[email protected]>
@joyneuberger
Copy link

If I've updated my entity_key_serialization_version, can't I just run feast apply again rather than using the utility function to reserialize?

@jyejare
Copy link
Contributor Author

jyejare commented Aug 5, 2025

@joyneuberger :
IF the data is stored/pushed in stores (offline/online) with version 2,
AND IF you are attempting to read the features from stores with version 3,
THEN you will have conflicts casue desearilization of version 2 entities wont be possible with version 3.
HENCE Reserializing it the perfect TODO here.

BUT IF You have not yet pushed data to the stores,
AND IF you have changed the version to 3,
THEN you are free to run feast apply

Most important thing here is the feast apply does not uses entity_key_serialization_version in any means. Why ?

  1. Basicaly feast apply is only suppose to create infra(like tables, schema etc) for storing the data in stores, and it does not writes the actual data to the stores.
  2. The entity key serialization version is used during runtime operations, not during the apply procedure, like:
    Online Feature Retrieval: When calling get_online_features(), the version is used to serialize entity keys for lookups in the online store.
    Online Feature Writing: When writing features to the online store (during materialization or push operations), the version determines how entity keys are serialized.
    Document Retrieval: For vector-based feature stores, the version affects how entity keys are serialized for similarity searches.

Finally,

  • If you are concerned about data in stores that is already pushed, please use reserialize function.
  • Else if you are concern about infra and the data is not already pushed to the stores, you can easily run feast apply.

Hope that answers !!

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.

Doc: Remove Feature retrieval for Serialization version 2

5 participants