Add two more PostgreSQL systems to test: native and no RPC#4457
Add two more PostgreSQL systems to test: native and no RPC#4457hogejo wants to merge 1 commit intoclockworklabs:masterfrom
Conversation
…QL without RPC server
|
|
|
lol grabbing pop corns |
|
😂😂😂😂😂😂😂😂 waiting |
|
Who's gonna tell em |
|
This was obvious in the video. Every Backend engineers should notice that. Nope, that looks more like number engineering than a neutral benchmark. I'd like to participate in this discussion and see how the Clockwork Labs team responds to these concerns.
|
|
It's funny how they ran into a bottleneck problem and decided to write a Rust client only for their own database and not for others. And then they even compared the results. |
|
🍿🍿🍿🍿🍿 |
|
edit - o i am an idiot - this is not a separate bench repo. Can we make it a separate bench repo? xD Can the CLA be removed from this bench repo? If you want it open and to be a long term source of not only competitor data, but also spacetime's own journey of performance over time, removing all barriers to contribution could help a lot. |
|
The purpose of our benchmark was to measure the systems as they would actually be deployed. This claims to be a more “apples to apples” comparison, but in reality every deployment of Postgres puts an RPC server in front of it. The point of the benchmark is that SpacetimeDB fills both roles for you by default. This ends up being more apples to oranges than the original benchmark, because it compares a full backend to half a backend. Love the deep dive though! We’ll be posting a response! |
I would love to, but I don't think the tool has the ability to do this. Maybe we should create a separate benchmark repo? |
|
Also I might be missing it somehow, but I'm not seeing the actual Postgres stored procedure in the PR. Can you please upload that as well? |
|
Cool, is there anything you can do to make Convex not look as bad? 😅 |
|
The benchmark in the video is not apple-to-apple comparison, and this PR is not either. SpacetimeDB fundamentally operates as both a database and an application server, whereas databases like Postgres require a separate server in between. However, comparing a Rust-based SpacetimeDB client using WebSockets against JavaScript-based servers utilizing HTTP for the other databases introduces transport and language-level bias, which is completely unfair. In my opinion, to achieve a true apples-to-apples comparison, the entire benchmark suite should be completely rewritten. The application logic of both SpacetimeDB reducer and the intermediary server for Postgres need to be implemented identically to eliminate language bias. Furthermore, the benchmark must utilize the exact same transport mechanism across all evaluated architectures. Don't get me wrong, I love the marketing and the tech behind SpacetimeDB. However, I don't think SpacetimeDB need to engineer a biased benchmark to win over the traditional server + db. EDIT: I just realized that the SpacetimeDB in the benchmark actually uses TS for its reducer. However, my point still stands about the transport. HTTP initialization is more expensive than a persistent WebSocket. |
|
We need to talk about this! This won't age well |
https://github.com/clockworklabs/SpacetimeDB/pull/4457/changes#diff-4dd84f03bdf19d7b2a1fa30f43ca7a0ecf5fbe23022e85b97a300b2ef004a31cR69-R121 I have the same opinion that ddwalias about this topic btw |
|
Let me keep the conversation within the bounds of this PR:
Regarding the comments:
100% agree. Anything after this, we can discuss as part of a collaboration (chat, writing code, sending PRs, etc.). I am closing this PR and hoping it will still be available so people can find my code. |
Description of Changes
Following your announcement / keynote (https://www.youtube.com/watch?v=C7gJ_UxVnSk), this PR is adding two other PostgreSQL systems to benchmark:
API and ABI breaking changes
Nothing. This just adds some goodies to your
keynote-2template.Expected complexity level and risk
Complexity: 2 - some polishing and merge-prep might required
Testing