-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Follow on to #10002 (I didn't make one for week of April 15 2024)
It would be great for other contributors to DataFusion who plan non trivial work could try to make them visible somehow as well 🙏 (feel free to copy / modify the format)
My Highlights from Last 2 Weeks
- DataFusion is now its own Top Level Apache Project 🎉 -- details here
- Unified Scalar Function API (
BuiltInScalarFunctionwas removed): Move coalesce to datafusion-functions and remove BuiltInScalarFunction #10098 - Begun extracting
BuiltInAggregateFunctionas well: @jayzhan211 is leading the charge [Epic] UnifyAggregateFunctionInterface (remove built in list ofAggregateFunctions), improve the system #8708 - 38.0.0 (not yet released) is currently 2x-7x faster planning queries details here thanks to @haohuaijin @matthewmturner @jayzhan211 @peter-toth @jackwener
- Several scalar functions like
trim,concat,upperetc got faster -- see [EPIC] A collection of improvements to optimize the speed of scalar functions #10171. thanks @JasonLi-cn 🙏 - The TreeNode API is now consistent for LogicalPlan and we are using it to good effect to avoid copying in
Optimizer, part of improving planning performance - Reduced required stack frame size for complex queries (Refactor physical create_initial_plan to iteratively & concurrently construct plan from the bottom up #10023 and Fix large futures causing stack overflows #10033)
37.1.0maintenance release: Release DataFusion37.1.0(non breaking API release) #9904- Removed additional redundant sorts with monotonic functions as part of teaching DataFusion how to take best advantage of sorted data: @suremarc feat: eliminate redundant sorts on monotonic expressions #9813
- Supporting
UNNESTwith multiple arrays thanks to @jonahgao feat: supportunnestmultiple arrays #10044 - New SQL parser release Release version
0.45.0datafusion-sqlparser-rs#1162
My (personal) goals
1000 projects are built using DataFusion 📈
My (personal) plans for this week
- Support [EPIC] Tasks for a new Top Level Apache Project #9691
- Keep removing copies to make planning faster: [EPIC] Stop copying
LogicalPlanduring OptimizerPasses #9637 -- - (Stretch goal) Document
ParquetExecmore (so it is clear / easier to understand what is already supported and what else could be useful API in ParquetExec to pass in RowSelections toParquetExec(enable custom indexes, finer grained pushdown) #9929)
Project Queue (list of future projects)
- API in ParquetExec to pass in RowSelections to
ParquetExec(enable custom indexes, finer grained pushdown) #9929 (likely not this week)
Projects I plan to help actively help review / plan
- [EPIC] Implement
StringViewArrayandBinaryViewArrayarrow-rs#5374 - [EPIC] Support converting Exprs and LogicalPlans --> SQL Strings #9494
- Supporting using parallel parquet writer outside of Datafusion query execution #9493 with @wiedld
Algorithm for (my) prioritizing PR reviews
Note there are many committers who can and do review and merge PRs, so this is not the priorities of the project as a whole, just the approximate algorithm I use to prioritize my own time
Priority:
- Bug fixes (where something is just incorrect), especially regressions (where it used to work and now does not)
- Improvements directly related to features needed for InfluxDB (my employer)
- Documentation and test improvements (I view these as very strategically important)
- PRs that I think are strategically important
- Other new features / additions to functionality (note this is the lowest)
The top strategically important projects in my head are:
- Anything that makes it easier to use DataFusion as a user (docs, examples, better APIs, etc), including Getting started guide for new users (who want to use DataFusion in their project)
- Anything that improves DataFusion's quality such as bug fixes, and improved / expanded tests, etc
- Making function packages modular and easier to mix/match: [EPIC] Unify Function Interface (remove
BuiltInScalarFunction) #8045
Thus, if you are interested in contributing to DataFusion and are interested in a fast turn around time I would recommend looking into bug fixes / test improvements / documentation or the projects named above
If you propose adding new functionality, the review cycle will likely be longer. You can make it a shorter cycle by looking at the comments on other recent PRs and following the same model (e.g. ensure there are tests in sqllogictest for example, the CI passes, includes documentation, etc)
Background
The idea of this ticket is make my plans for DataFusion visible, largely for my own personal organizational needs, but also to:
- Communicate / coordinate in the community
- Help provide an interesting summary of what is happening in DataFusion this week