Back

Quack-Cluster: A Serverless Distributed SQL Query Engine with DuckDB and Ray

48 points4 daysgithub.com
fodkodrasz3 hours ago

So DuckDB was developed to allow queries for bigish data finally without the need for a cluster to simplify data analysis... and we now put it to a cluster?

I think there are solutions for that scale of data already, and simplicity is the best feature of DuckDB (at lest for me).

augusteo52 minutes ago

> "So DuckDB was developed to allow queries for bigish data finally without the need for a cluster to simplify data analysis... and we now put it to a cluster?"

This is a fair point, but I think there's a middle ground. DuckDB handles surprisingly large datasets on a single machine, but "surprisingly large" still has limits. If you're querying 10TB of parquet files across S3, even DuckDB needs help.

The question is whether Ray is the right distributed layer for this. Curious what the alternative would be—Spark feels like overkill, but rolling your own coordination is painful.

AnEro1 hour ago

Big fan of this push back, because there are alot of projects that have that smell over engineering with the wrong base. (especially with vibecoding now) Thought there are use cases where some have lots of medium-sized data divided up. For compliance, I have a lot of reporting data split such that duckdb instances running in separate processes work amazing for us especially with lower complexity to other compute engines in that environment. If I wanted to move everything into somewhere a clickhouse/trino/databrick/etc would work well the compliance complexity skyrockets and makes it so we have to have perfect configs and tons of extra time invested to get the same devex

rfonseca1 hour ago

What is the lifetime of the Ray workers, or, in other words, what is the scalability / scale-to-zero story that makes this serverless?

nevalainen3 hours ago

feels like a missed opportunity to call it cluster-quack xD

chatmasta2 hours ago

Surely “clusterduck” would be better…

mgaunard3 hours ago

In my experience ray clusters don't scale well and end up costing you more money. You need to run permanent per-user instances etc.

What you need is a multi-tenancy shared infrastructure that is elastic.

dogman1233 hours ago

neat. i'm pretty novice in the guts of this kind of stuff, but how does this work under the hood for blocking operators where they "cannot output a single row until the last row of their input has been seen"?

i think this is where spark shuffling comes in? but how does it work here.

https://duckdb.org/docs/stable/guides/performance/how_to_tun...