Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace SimpleVector metadata with strongly typed SimpleVectorStats #1347

Closed

Conversation

kevinwilfong
Copy link
Contributor

Summary:
SimpleVector uses a string-ly typed map to store metadata. This seems to be used primarily for storing min/max stats as well as the bias for BiasVectors.

This is inefficient because we end up de/serializing back and forth from strings, and doesn't work for all types (e.g. opaque types). This causes issues in VectorMaker as it tries to initialize stats when creating vectors, so we can't create vectors of Opaque types.

Since SimpleVector is templated on the underlying type, I add a SimpleVectorStats object, also templated on this type, and pass this to the vector's constructor instead of the map of strings. This way min/max don't need to be serialized/deserialized, and it works for any type.

Differential Revision: D35363043

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported labels Apr 4, 2022
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D35363043

kevinwilfong added a commit to kevinwilfong/velox that referenced this pull request Apr 11, 2022
…acebookincubator#1347)

Summary:
Pull Request resolved: facebookincubator#1347

SimpleVector uses a string-ly typed map to store metadata.  This seems to be used primarily for storing min/max stats as well as the bias for BiasVectors.

This is inefficient because we end up de/serializing back and forth from strings, and doesn't work for all types (e.g. opaque types).  This causes issues in VectorMaker as it tries to initialize stats when creating vectors, so we can't create vectors of Opaque types.

Since SimpleVector is templated on the underlying type, I add a SimpleVectorStats object, also templated on this type, and pass this to the vector's constructor instead of the map of strings.  This way min/max don't need to be serialized/deserialized, and it works for any type.

Reviewed By: laithsakka

Differential Revision: D35363043

fbshipit-source-id: d1ff8966fa10ed0387ef36863f3d2959d8157917
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D35363043

…acebookincubator#1347)

Summary:
Pull Request resolved: facebookincubator#1347

SimpleVector uses a string-ly typed map to store metadata.  This seems to be used primarily for storing min/max stats as well as the bias for BiasVectors.

This is inefficient because we end up de/serializing back and forth from strings, and doesn't work for all types (e.g. opaque types).  This causes issues in VectorMaker as it tries to initialize stats when creating vectors, so we can't create vectors of Opaque types.

Since SimpleVector is templated on the underlying type, I add a SimpleVectorStats object, also templated on this type, and pass this to the vector's constructor instead of the map of strings.  This way min/max don't need to be serialized/deserialized, and it works for any type.

Reviewed By: laithsakka

Differential Revision: D35363043

fbshipit-source-id: 853c979184aef8e420154f73ba5738c98cfc5334
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D35363043

Arty-Maly pushed a commit to Arty-Maly/velox that referenced this pull request May 13, 2022
…acebookincubator#1347)

Summary:
Pull Request resolved: facebookincubator#1347

SimpleVector uses a string-ly typed map to store metadata.  This seems to be used primarily for storing min/max stats as well as the bias for BiasVectors.

This is inefficient because we end up de/serializing back and forth from strings, and doesn't work for all types (e.g. opaque types).  This causes issues in VectorMaker as it tries to initialize stats when creating vectors, so we can't create vectors of Opaque types.

Since SimpleVector is templated on the underlying type, I add a SimpleVectorStats object, also templated on this type, and pass this to the vector's constructor instead of the map of strings.  This way min/max don't need to be serialized/deserialized, and it works for any type.

Reviewed By: laithsakka

Differential Revision: D35363043

fbshipit-source-id: 674cb6d8c2ac4d47a94c9ac9a2138fae4d618c86
shiyu-bytedance pushed a commit to shiyu-bytedance/velox-1 that referenced this pull request Aug 18, 2022
…acebookincubator#1347)

Summary:
Pull Request resolved: facebookincubator#1347

SimpleVector uses a string-ly typed map to store metadata.  This seems to be used primarily for storing min/max stats as well as the bias for BiasVectors.

This is inefficient because we end up de/serializing back and forth from strings, and doesn't work for all types (e.g. opaque types).  This causes issues in VectorMaker as it tries to initialize stats when creating vectors, so we can't create vectors of Opaque types.

Since SimpleVector is templated on the underlying type, I add a SimpleVectorStats object, also templated on this type, and pass this to the vector's constructor instead of the map of strings.  This way min/max don't need to be serialized/deserialized, and it works for any type.

Reviewed By: laithsakka

Differential Revision: D35363043

fbshipit-source-id: 674cb6d8c2ac4d47a94c9ac9a2138fae4d618c86
marin-ma pushed a commit to marin-ma/velox-oap that referenced this pull request Dec 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants