Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Website] Add Blog about Comet Donation #479

Merged
merged 10 commits into from
Mar 6, 2024
Merged

Conversation

alamb
Copy link
Contributor

@alamb alamb commented Feb 27, 2024

Closes apache/datafusion-comet#6

Rationale: We should tell the world about the Comet donation.

See background and more details on the mailing list: https://lists.apache.org/thread/0q1rb11jtpopc7vt1ffdzro0omblsh0s

┃ (Native Code) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
```

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I felt we needed some sort of image, but this is pretty basic ASCII art... If anyone has other ideas that would be appreciated

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image in comet's README is a good alternative, but we need to add the driver part.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a good image, but it is quite detailed

What I was hoping was to have an image that visually depicts the relationship between Spark and Comet

Something similar maybe to https://github.com/oap-project/gluten?tab=readme-ov-file#2-architecture

image

I don't know enough about how spark is implemented internally to make such a picture now, though

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking a figure like:

Spark Frontend / Optimizer (JVM Based) -> Comet Execution Engine (Native Code)

  • -> Arrow DataFusion
  • -> Spark compatible expression/operator

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I took a shot at updating it in 70ff88d

What do you think?

Screenshot 2024-02-28 at 6 50 30 AM

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thanks @alamb

[Gluten project]: https://incubator.apache.org/projects/gluten.html

# Get Involved
Comet is still in the early stages of development and we would love to have you
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to double check / make sure this is the right way to ask people to get involved

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good enough for now. Maybe we can consider opening the "Discussions" tab for people to ask questions & raise discussions, but that can be done later.

alamb and others added 2 commits February 28, 2024 06:30
Co-authored-by: Liang-Chi Hsieh <viirya@gmail.com>
Co-authored-by: Andy Grove <andygrove73@gmail.com>
@alamb
Copy link
Contributor Author

alamb commented Feb 28, 2024

@sunchao / @viirya do you know of any benchmark results that we can share about comet (e.g. "it ran the same query 30% faster with 50% the resources")? I realize we may not have numbers that can be shared at this time, but if we did I think it would make this post more compelling

@sunchao
Copy link
Member

sunchao commented Feb 28, 2024

@alamb we don't have numbers with Comet yet, but we are working on this and hopefully it will be available in the 1-2 months.

replacement for Spark's JVM based SQL execution engine and offers significant
performance improvements for some workloads as shown below.

```text
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of text, maybe we can create some diagrams using tools like Lucidchart? I can help to translate this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be great if you can translate the diagram to an image. Maybe we could also (re)use such an image in the main comet readme.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boson Vectorized Shuffle - Page 1

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does this look? Let me know if you have ideas to improve it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I swapped the blog to use the image and I think it is looking pretty good

Screenshot 2024-03-01 at 3 31 49 PM

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I liked the image so much I propose putting it in the main comet repo: apache/datafusion-comet#148

[Gluten project]: https://incubator.apache.org/projects/gluten.html

# Get Involved
Comet is still in the early stages of development and we would love to have you
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good enough for now. Maybe we can consider opening the "Discussions" tab for people to ask questions & raise discussions, but that can be done later.

@sunchao
Copy link
Member

sunchao commented Feb 28, 2024

I'm hoping we can have another blog post right after the initial release, with some benchmark numbers.

_posts/2024-02-27-comet-donation.md Outdated Show resolved Hide resolved
_posts/2024-02-27-comet-donation.md Outdated Show resolved Hide resolved
_posts/2024-02-27-comet-donation.md Outdated Show resolved Hide resolved
_posts/2024-02-27-comet-donation.md Outdated Show resolved Hide resolved
@alamb
Copy link
Contributor Author

alamb commented Feb 28, 2024

Here is some third-party coverage: https://thenewstack.io/apple-comet-brings-fast-vector-processing-to-apache-spark/

@alamb
Copy link
Contributor Author

alamb commented Feb 29, 2024

I'm hoping we can have another blog post right after the initial release, with some benchmark numbers.

That makes a lot of sense. I put a note about working on an initial release and another update after that in b3d17ce

Comment on lines 74 to 76
Comet is one of a growing class of projects that aim to accelerate Spark using
native columnar engines such as the proprietary [Databricks Photon Engine] and
the open source [Gluten project] and [Spark RAPIDS].

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it help to give some background as to why these initiatives have been popping up in the first place? I know the article alludes to columnar execution and lower resource usage, but (imo) it would be more approachable if it were framed from the perspective of the struggles Spark users face today, and then explaining how these initiatives address those problems.

Relatedly, I vaguely remember hearing about an effort to bring columnar execution into mainline Spark (was it Project Tungsten?). I would be curious to hear about the differences between that effort and Comet's approach.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @SChakravorti21 for this suggestion. I agree such background would help -- maybe some of the other reviewers (some of whom are spark committers I believe) can offer more specifics and how this relates to mainline spark.

The Velox Paper basically says the JVM implementation of spark is slow so native columnar execution is better, but I don't recall it delving into any more detail

Comment on lines 66 to 68
rich query optimizer and planner. However, the execution is delegated to Comet,
which is significantly faster and more resource efficient than the JVM based
implementation.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume you might already be planning to add more details, but I'd love to hear about any Comet-specific optimizations that were implemented. Similarly, I'd be interested to hear about DataFusion-specific features that made it a particularly good fit for Comet's implementation (DataFusion's focus on extensibility comes to mind).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I defer to @sunchao / @viirya or one of the other comet authors for this. Maybe it would be a good topic to address in the initial release blog

Comet into the Apache Software Foundation will accelerate its development and
grow its community of contributors and users.

[Comet project]: https://github.com/apache/arrow-datafusion-comet

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I learned that there is a similar effort to build a Spark-native accelerator using DataFusion: Blaze. Wondering if it deserves a mention as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@richox or @yjshen, who worked on Blaze in the past, do you have any suggestions or thoughts on if/how we should mention Blaze in this post?

The last time I checked the Blaze project hadn't had any updates, but it appears that in the last 6 months @richox has been working on it (BTW @richox contributed some excellent improvements to DataFusion as well such a a loser tree for the sorting implementation 🙏 )

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a link in 919c934

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I heard the current Blaze team has proposed donating it to Apache in the past, but I am not sure what the status is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is probably unrealistic, but perhaps the projects could converge over time

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. It would be great if Blaze and Comet can join forces in some way!

@kou kou changed the title [Website]: Add Blog about Comet Donation [Website] Add Blog about Comet Donation Mar 3, 2024
@alamb
Copy link
Contributor Author

alamb commented Mar 4, 2024

I plan to publish this blog tomorrow, March 5, unless anyone would like more time to review or has other thoughts. Thank you all for the feedback so far

@alamb
Copy link
Contributor Author

alamb commented Mar 6, 2024

Sorry I forgot to hit the button yesterday. I guess it will be published today March 6

@alamb alamb merged commit d54b3be into apache:main Mar 6, 2024
1 check passed
@alamb
Copy link
Contributor Author

alamb commented Mar 6, 2024

Thanks everyone for the help

@alamb alamb deleted the alamb/comet branch March 6, 2024 07:52
@alamb
Copy link
Contributor Author

alamb commented Mar 6, 2024

Published at https://arrow.apache.org/blog/2024/03/06/comet-donation/

@viirya
Copy link
Member

viirya commented Mar 6, 2024

Thank you @alamb !

@sunchao
Copy link
Member

sunchao commented Mar 6, 2024

Thanks @alamb !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Write a blog post about the comet donation
7 participants