Replies: 1 comment
-
|
Picked up a couple of small items here — #6808 and #6809. Happy to adjust if these don't align with your plans. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Currently, Daft's distributed runner (Flotilla) utilizes Ray object store for peer-to-peer communication of tabular data (aka
MicroPartitions). Although Ray's Object Store is readily available when working on Ray clusters and provides some additional benefits (lineage, ref-counting / garbage collection), we have started to notice some issues. In particular:Thus, in addition to our Ray-based shuffle service, we are adding a native shuffle service called Flight Shuffle that:
We can break this down into 3 sub-tasks.
1) Basic Flight Shuffle
Build and tune Flight shuffle to replace our Ray-based repartition (used for GroupBy and Join operations) such that the performance is within 20% of Ray's version.
Tasks:
Any potential follow-up tasks or optimizations will be listed below.
2) "Genericize" Shuffle Backends
Rather than hard-coding special support for Ray and Flight shuffles, we should instead track shuffle "backends" as generic trait that supports writing MicroPartitions to and reading from. For more details on the specific design and interface, see the design doc.
Tasks:
3) Task Lineage and Fault Tolerance
Right now, Daft can only handle worker / task failure for map-only pipelines, where all inputs are hard-coded external items (such as a file path on S3). To support general pipelines, the scheduler would need to determine if intermediate partitions are available, and if not, recursively re-run previous tasks to regenerate them. For more details, see the design doc.
Tasks:
Beta Was this translation helpful? Give feedback.
All reactions