Skip to content

Break datafusion crate into smaller crates #1750

Closed

Description

@jimexist

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

a new feature: to break datafusion crate into separate smaller crates.

It helps with code management and dependency reasoning

Describe the solution you'd like


Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Activity

  1. jimexist commented on Feb 5, 2022

    @jimexist
    MemberAuthor

    cc @alamb @houqp @Dandandan what do you think?

  2. alamb commented on Feb 5, 2022

    @alamb
    Contributor

    I like this idea @jimexist 👍 There is some related commentary / information here: #348 as well

    Some other crates that might be useful to consider;

    • datafusion_core (DataFusionError, DFSchema, etc)
    • datafusion_datasource (the built in parquet, avro, csv and json readers and supporting logic)
  3. andygrove commented on Feb 5, 2022

    @andygrove
    Member

    This will be helpful for use cases where users are looking to use DataFusion in a similar fashion to Calcite, for query parsing and planning, but not for execution. I like this idea.

  4. houqp commented on Feb 6, 2022

    @houqp
    Member

    Thank you @jimexist for taking on this! I think this is the right path forward.

    cc @jorgecarleitao and @yjshen since they have proposed the similar ideas before.

  5. self-assigned this
    on Feb 6, 2022
  6. yahoNanJing commented on Feb 7, 2022

    @yahoNanJing
    Contributor

    Hi @jimexist, is it possible to make an exclusive crate for the data source so that it will be easy for the integration of the different kinds of remote object store?

    Suppose I hope to introduce the hdfs as one of the remote object store. To be less intrusive, it's better to make an independent datafusion-objectstore-hdfs crate which depends on the datasource crate of datafusion. Then it would be much easier for other crates to decide whether to depend on the datafusion-hdfs crate or not without cyclic dependencies.

  7. jimexist commented on Feb 7, 2022

    @jimexist
    MemberAuthor

    Hi @jimexist, is it possible to make an exclusive crate for the data source so that it will be easy for the integration of the different kinds of remote object store?

    Suppose I hope to introduce the hdfs as one of the remote object store. To be less intrusive, it's better to make an independent datafusion-objectstore-hdfs crate which depends on the datasource crate of datafusion. Then it would be much easier for other crates to decide whether to depend on the datafusion-hdfs crate or not without cyclic dependencies.

    yes it's a good idea and i believe it's included in the list already

  8. yahoNanJing commented on Feb 8, 2022

    @yahoNanJing
    Contributor

    Thanks @jimexist

  9. jimexist commented on Feb 8, 2022

    @jimexist
    MemberAuthor

    my current plan is to finish items for:

    • datafusion-common
    • datafusion-expr

    before release 7:

    and finish the rest after the release, to cap the amount of changes in a release

  10. Igosuki commented on Feb 9, 2022

    @Igosuki
    Contributor

    @jimexist could this lead to a smaller ballista client crate as well ? Potentially, this could greatly speed up compilation of programs who just want to be datafusion clients and not run the entire stack.

  11. jimexist commented on Feb 9, 2022

    @jimexist
    MemberAuthor

    Contributor

    i'm not sure as of now - but probably if we split up logical/physical planning further - but that won't happen soon

  12. alamb commented on Feb 9, 2022

    @alamb
    Contributor

    Related comment: #1762 (comment)

  13. jimexist commented on Jul 20, 2022

    @jimexist
    MemberAuthor

    i wanted to continue iterating on this split but obviously i didn't have time to keep up. a lot has happened in the last few months. i wonder if this is still relevant or it shall be closed now. @alamb and @andygrove any suggestions?

  14. alamb commented on Jul 20, 2022

    @alamb
    Contributor

    @jimexist welcome back!

    I would say that the main "break datafusion into smaller crates" has been completed. There are still some items in the description of this ticket that might not be done - I would personally recommend filing a new issue with any items that you think would still be good to work on and then closing this one.

  15. alamb commented on Oct 24, 2022

    @alamb
    Contributor

    Closing this ticket and we can track further splitting in follow on issues. Again 👏

  16. alamb commented on Nov 11, 2022

    @alamb
    Contributor

    I am thinking of trying to push us to the next level here #4181

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions