datafusion icon indicating copy to clipboard operation
datafusion copied to clipboard

DataFusion weekly project plan (Andrew Lamb) - April 22, 2024

Open alamb opened this issue 1 year ago • 2 comments

Follow on to https://github.com/apache/datafusion/issues/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 (BuiltInScalarFunction was removed): https://github.com/apache/datafusion/pull/10098
  • Begun extracting BuiltInAggregateFunction as well: @jayzhan211 is leading the charge https://github.com/apache/datafusion/issues/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, upper etc got faster -- see https://github.com/apache/datafusion/issues/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 (https://github.com/apache/datafusion/pull/10023 and https://github.com/apache/datafusion/pull/10033)
  • 37.1.0 maintenance release: https://github.com/apache/datafusion/issues/9904
  • Removed additional redundant sorts with monotonic functions as part of teaching DataFusion how to take best advantage of sorted data: @suremarc https://github.com/apache/datafusion/pull/9813
  • Supporting UNNEST with multiple arrays thanks to @jonahgao https://github.com/apache/datafusion/pull/10044
  • New SQL parser release https://github.com/sqlparser-rs/sqlparser-rs/issues/1162

My (personal) goals

1000 projects are built using DataFusion 📈

My (personal) plans for this week

  • [ ] Support https://github.com/apache/arrow-datafusion/issues/9691
  • [ ] Keep removing copies to make planning faster: https://github.com/apache/arrow-datafusion/issues/9637 --
  • [ ] (Stretch goal) Document ParquetExec more (so it is clear / easier to understand what is already supported and what else could be useful https://github.com/apache/arrow-datafusion/issues/9929)

Project Queue (list of future projects)

  • [ ] https://github.com/apache/arrow-datafusion/issues/9929 (likely not this week)

Projects I plan to help actively help review / plan

  • [ ] https://github.com/apache/arrow-rs/issues/5374
  • [ ] https://github.com/apache/arrow-datafusion/issues/9494
  • [ ] https://github.com/apache/arrow-datafusion/issues/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:

  1. Bug fixes (where something is just incorrect), especially regressions (where it used to work and now does not)
  2. Improvements directly related to features needed for InfluxDB (my employer)
  3. Documentation and test improvements (I view these as very strategically important)
  4. PRs that I think are strategically important
  5. Other new features / additions to functionality (note this is the lowest)

The top strategically important projects in my head are:

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:

  1. Communicate / coordinate in the community
  2. Help provide an interesting summary of what is happening in DataFusion this week

alamb avatar Apr 22 '24 11:04 alamb

Review queue:

  • [x] https://github.com/apache/datafusion/pull/10214
  • [x] https://github.com/apache/datafusion/pull/10215
  • [x] https://github.com/apache/datafusion/pull/10186
  • [x] https://github.com/apache/datafusion/pull/10224
  • [x] https://github.com/apache/datafusion/pull/10188
  • [x] https://github.com/apache/datafusion/pull/10193
  • [x] https://github.com/apache/datafusion/pull/10226
  • [x] https://github.com/apache/arrow-rs/pull/5686

alamb avatar Apr 22 '24 20:04 alamb

Review

  • [ ] https://github.com/apache/datafusion/pull/10221
  • [x] https://github.com/apache/datafusion/pull/10148
  • [ ] https://github.com/apache/datafusion/pull/9593
  • [ ] https://github.com/apache/datafusion/pull/10149
  • [ ] https://github.com/apache/datafusion/pull/10208
  • [ ] https://github.com/apache/datafusion/pull/10054

alamb avatar Apr 27 '24 10:04 alamb

Next week: https://github.com/apache/datafusion/issues/10283

alamb avatar Apr 29 '24 11:04 alamb