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

Rework Thrift Encoding / Decoding of Parquet Metadata #4891

Closed
tustvold opened this issue Oct 4, 2023 · 4 comments · Fixed by #4892
Closed

Rework Thrift Encoding / Decoding of Parquet Metadata #4891

tustvold opened this issue Oct 4, 2023 · 4 comments · Fixed by #4892
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate

Comments

@tustvold
Copy link
Contributor

tustvold commented Oct 4, 2023

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Currently we make use of the Apache thrift crate for encoding and decoding Parquet metadata. This has served us well, but there are a few problems:

Describe the solution you'd like

Not sure yet. Parquet requires a very limited portion of the thrift specification, only making use of the compact encoding, and none of the protocol functionality, and so one option might be to just support this subset with a custom implementation.

Describe alternatives you've considered

Additional context

@tustvold tustvold added the enhancement Any new improvement worthy of a entry in the changelog label Oct 4, 2023
@mapleFU
Copy link
Member

mapleFU commented Oct 4, 2023

Is that means transfering to a new rust thrift lib? Or using other way to workaround? Since parquet 2.10 might released later, I think the thrift idl might change in the future ( though last release is public severo years ago...)

@tustvold
Copy link
Contributor Author

tustvold commented Oct 4, 2023

I think my hope would be that we can get by with the existing thrift-compiler, perhaps with some sed, but then swap out the protocol implementation. I'm playing with this now

@mapleFU
Copy link
Member

mapleFU commented Oct 4, 2023

I think this can benefit some partial thrift decoding (e.g. user only want schema, but the whole FileMetadata thrift need to be deserialized)

However I don't know the performance and maintainance of hand-written parsing🤔 Looking forward the great work here

tustvold added a commit to tustvold/arrow-rs that referenced this issue Oct 4, 2023
tustvold added a commit to tustvold/arrow-rs that referenced this issue Oct 4, 2023
tustvold added a commit that referenced this issue Oct 10, 2023
* Specialize thrift (#4891)

* Review feedback
@tustvold tustvold added the parquet Changes to the parquet crate label Oct 18, 2023
@tustvold
Copy link
Contributor Author

label_issue.py automatically added labels {'parquet'} from #4892

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Any new improvement worthy of a entry in the changelog parquet Changes to the parquet crate
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants