Skip to content
New issue

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

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

Already on GitHub? # to your account

Fix serialization issue with schema evolution for query v3. #5154

Merged
merged 2 commits into from
Jul 5, 2024

Conversation

ypatia
Copy link
Member

@ypatia ypatia commented Jul 5, 2024

Query v3 requires fragment metadata serialization/deserialization inside the array object. However fragment metadata capnp model wasn't including the name of the array schema that each fragment was written with , and in case of schema evolution this was leading to serializing the wrong schema (always the latest) and making the REST server read the wrong data from disk.

This PR adds the missing array schema name field and adapts the ser/deser to pick the schema based on that name.
[sc-48707]


TYPE: BUG
DESC: Fix serialization issue with schema evolution for query v3.

@ypatia ypatia marked this pull request as ready for review July 5, 2024 12:45
@KiterLuc KiterLuc changed the title Fix schema evolution issue for query v3 Fix serialization issue with schema evolution for query v3. Jul 5, 2024
@ypatia ypatia requested a review from johnkerl July 5, 2024 12:51
@KiterLuc KiterLuc merged commit 9c6411f into dev Jul 5, 2024
64 of 65 checks passed
@KiterLuc KiterLuc deleted the yt/sc-48707/fix_schema_evolution_qv3 branch July 5, 2024 13:41
schema = array->array_schemas_all().at(fragment_array_schema_name);
} else if (array->array_schemas_all().size() > 1) {
throw ArraySerializationException(
"Cannot deserialize fragment metadata without an array schema name "
Copy link
Contributor

Choose a reason for hiding this comment

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

KiterLuc pushed a commit that referenced this pull request Jul 5, 2024
Query v3 requires fragment metadata serialization/deserialization inside
the array object. However fragment metadata capnp model wasn't including
the name of the array schema that each fragment was written with , and
in case of schema evolution this was leading to serializing the wrong
schema (always the latest) and making the REST server read the wrong
data from disk.

This PR adds the missing array schema name field and adapts the
ser/deser to pick the schema based on that name.
[sc-48707]

---
TYPE: BUG
DESC: Fix serialization issue with schema evolution for query v3.
KiterLuc added a commit that referenced this pull request Jul 5, 2024
… for query v3. (#5154) (#5157)

Backport 9c6411f from #5154.

---
TYPE: BUG
DESC: Fix serialization issue with schema evolution for query v3.

Co-authored-by: Ypatia Tsavliri <ypatia@tiledb.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants