Discussion about this post

User's avatar
Sadig Akhund's avatar

I wonder if the JVM cost outweighs communicating all of that between "Rust + Datafusion + Apache Arrow". True Rust may be faster, but I believe it's not largely Java vs Rust here.

Shehab Amin's avatar

Daniel, thank you for taking the time to write such a thoughtful and in-depth review. Your words about both Sail and LakeSail were incredibly encouraging!

Your comments about the LakeSail onboarding and developer experience were especially heartwarming. We have invested heavily in making a deeply technical platform feel simple and intuitive. That same philosophy also drove our decision to support Spark Connect: preserve the interface and code developers already know while replacing the engine underneath.

The performance results also raised some interesting questions. LakeSail is powered by the same Sail engine and completed the workload in 177.7 seconds on a t3.small instance with only 2 vCPUs and 2 GiB of RAM.

Do you happen to know what resources Databricks Serverless allocated and the specifications of the laptop used for the local run? From what I can tell, the Sail test inside Databricks ran within the notebook environment, while the native Databricks run executed on the managed Serverless backend. The notebook itself has very limited compute allocated to it, since the heavy lifting is performed by the backend, so Sail would not have had access to the same compute resources.

I'm also curious whether the runs were equally cold or warm. The Databricks session may already have been warm, while the Sail and LakeSail results appear to have been single first runs. Running Sail a second time against the same server and session would make for a more meaningful warm-run comparison.

Given the result on a t3.small, I would be very interested to see the same workload run on something like an r8g.4xlarge. I would not be surprised to see Sail outperform the Databricks result under those conditions. The fairest comparison would use the same instance type or, if that is not possible, instances with equivalent vCPU and memory allocations.

Of course, I do not expect you to rerun the benchmark. I simply wanted to provide some additional context around the results, since you mentioned that the performance results were the one thing still nagging at you. I thought it might be helpful for both you and anyone else reading the article.

Thank you again for the independent review and the very generous words!

1 more comment...

No posts

Ready for more?