You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Greg Bowyer (Jira)" <ji...@apache.org> on 2021/02/24 01:52:03 UTC

[jira] [Commented] (ARROW-10636) [Rust] Remove specialisation from Rust parquet

    [ https://issues.apache.org/jira/browse/ARROW-10636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17289482#comment-17289482 ] 

Greg Bowyer commented on ARROW-10636:
-------------------------------------

I am excited to see what you get, it does occur to me maybe we should run a bench on ARM, but I think at this point might be over-analyzing everything :S



> [Rust] Remove specialisation from Rust parquet
> ----------------------------------------------
>
>                 Key: ARROW-10636
>                 URL: https://issues.apache.org/jira/browse/ARROW-10636
>             Project: Apache Arrow
>          Issue Type: Sub-task
>          Components: Rust
>            Reporter: Greg Bowyer
>            Assignee: Greg Bowyer
>            Priority: Major
>              Labels: parquet, pull-request-available
>             Fix For: 3.0.0
>
>          Time Spent: 8h 50m
>  Remaining Estimate: 0h
>
> This is a very initial attempt at removing the specialization features from the Rust Parquet implementation.
> The specialisation is too complex to be covered by {{min_specialization}} and requires a bit of reworking in the crate.
> Right now the code dispatches in sub-traits and methods on the Parquet type, and uses a combination of trait abuse, macros and transmutes to eliminate the feature.
> I have broken this up into several commits ranging from the simplest removals (which could probably be taken fairly easily) to the most ugly and complex.
> I am not stoked on the {{transmute}} abuse, and I think another take (or follow up) should be taken to remove as many as possible in the code.
> The general trait for {{DataType::T}} has been made a private sealed trait to make it impossible to implement external to the Parquet crate, this is intentional as I dont think many of the public interfaces are sensible for end users to be able to implement.
> h1. TODO:
>  * Purge the added {{std::mem::transmute}}s if possible
>  * Refine and rationalise the {{unimplemented!}} implementations
>  * Performance test?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)