Top
Best
New

Posted by aphyr 11 hours ago

Jepsen: ParticleDB 1.1.4(jepsen.io)
https://github.com/jepsen-io/particledb
174 points | 95 commentspage 2
zbentley 2 hours ago|
I do not know in what order Kyle et al. wrote the report, but as I progressed through different parts I think I could detect instances of an increasingly fatigued/disheartened/unhinged tone--without compromising the professionalism we expect from Jepsen analyses, of course. These moments of humanity brought me joy.

More cynically, I suspect that many low-quality database projects succeed or fail based more on marketing and hype than robustness. A dishonest product could simply take the line "engineers at Orkes were able to produce a highly sophisticated database system" from the report out of context, quote it on their homepage attributed to aphyr/Kyle/Jepsen, and reap short-term rewards and popularity. I hope I'm wrong.

semiquaver 6 hours ago||
https://github.com/particledbai/jepsen/issues/18 is utterly humiliating. I can’t believe they kept going after getting that report. I would die of shame.

(Edit for clarity: this is quoted from the linked article)

  You could write predicates over non-existent columns:

  root=> SELECT * FROM t
         WHERE definitely_not_a_column = 4;
   a | b
  ---+----
   4 | 5
  (1 row)
  Or ask if 4 = 5

  root=> SELECT * FROM t WHERE 4 = 5;
   a | b
  ---+----
   5 | 6
  (1 row)


Good on them for being good sports I guess, but after reading this I would never touch a piece of software built by anyone involved with this company. The sheer hubris of their claims combined with the specific reality of their broken garbage software (with the contradicted marketing claims and hallucinated documentation) is literally breathtaking.

It must have been darkly amusing to see all these defect tickets coming in, only for them to frantically shovel each one to increasingly overworked LLM agents to apply pig-lipstick while the humans in charge oh-so-slowly start to realize their software quality is not quite what their glazing agents had been telling them and that what they have on their hands is basically sub-mongo-quality slop. What a world we live in, huh?

mrkeen 4 hours ago||
I won't push back on it being garbage, but I would suggest that if enough people did it that way it would be the new normal, and apologists would fall out of the woodwork, e.g. [1]

I complain that mainstream SQL engines have no problem returning less than the total number of rows if you first query WHERE column = NULL and then query WHERE column <> NULL. Your example queries remind me of that.

[1] https://medium.com/dailyjs/the-why-behind-the-wat-an-explana...

semiquaver 4 hours ago|||

  > WHERE column = NULL and then query WHERE column <> NULL
With respect, your statement seems to indicate that you simply haven’t heard of or don’t understand the three-valued-logic semantics behind SQL.

NULL means what it means and is conceptually foundational to SQL. Comparing it to anything returns UNKNOWN, the “third value” besides true and false. And WHERE needs a TRUE predicate. So your implied fault that they “have no problem“ really is just a matter of you not understanding the tool you are complaining about.

To match against the NULLness of a value you must use special purpose operators. In this case

   WHERE column IS NULL OR column IS NOT NULL
mrkeen 3 hours ago||
Hi apologist. How was the woodwork? Your exact comment was why I wrote mine.

  You could write predicates over non-existent columns:

  root=> SELECT * FROM t
         WHERE definitely_not_a_column = 4;
Cool, definitely_not_a_column doesn't exist, so therefore that whole WHERE clause doesn't exist either, so the real query is SELECT FROM t.

  SELECT * FROM t WHERE 4 = 5;
   a | b
  ---+----
   5 | 6
  (1 row)
We're comparing 4 and 5. Precedent?

  System.out.println(((Integer)4).compareTo((Integer)5));
  > -1
What happens when you treat -1 as a bool? The following languages agree that -1 is true: C, C++, JS, Python, PHP, Ruby, Perl, Lua, R.

So it's SELECT FROM t WHERE true;

Now, let's get busy blaming Jepsen for using the tool wrong.

debugnik 2 hours ago||
> therefore that whole WHERE clause doesn't exist either

No, therefore the condition is unsatisfiable and equivalent to WHERE FALSE. And that's letting you ignore the SQL spec, which says the query is invalid and should return "Column not found" because the column name cannot be resolved.

> We're comparing 4 and 5. Precedent?

I really hope you're trolling, for your own sake.

CodesInChaos 4 hours ago|||
I am rather receptive to the argument that SQL is a fractal of bad design. But complaining that SQL engines implement well known SQL semantics according to spec is silly.
pluto_modadic 6 hours ago||
Aphyr does great work, Jepsen always kicks it out of the park :)
thebeardisred 4 hours ago||
Congrats to the particledb team for getting this far and thanks to @aphyr for the analysis.

It takes gumption to build a new storage engine. I remember when etcd[0] first made it's way into @aphyr's cross-hairs. We took all of the input very seriously because we knew that a data store which is untrustworthy is useless.

Resolving these issues likely won't be easy, but if you can get to the point where you walk away from Jepsen unscathed the trust in your software will be greatly amplified.

0: https://aphyr.com/posts/316-call-me-maybe-etcd-and-consul

throwaway737488 3 hours ago|
Finding issues is normal. But the bold claims they had on their website is what makes this a bust.
lopatin 1 hour ago||
Right, when Rachael Gunn (Raygun) embarrassed Australia and the whole of breakdancing on the olympic stage, the nice thing to say would have been "congrats on getting this far, fixing the issues won't be easy, etc..." but what really should be said something like "I'm not sure how it got to this point, but everything about this is wrong, and you should probably focus on something else".
CodesInChaos 6 hours ago||
Since the library claims to be postgres compatible, I wonder if its developers ran the existing postgres jepsen suite against it (possibly with some adjustments). Or why not.

Especially now, where you could probably just ask AI to adapt the existing suites to the cosnistency claims this database makes, and get something useful out of it. While certainly not as good as a professional test, I'd expect it to at least find some low hanging fruits before going for the expensive and public official Jepsen test.

yla92 6 hours ago|
The company says they did. From the post

"Orkes said they ran Jepsen’s existing Postgres test harness to find and resolve issues in ParticleDB prior to this work. However, that same test harness failed immediately when run against ParticleDB 1.1.4. Orkes also stated they tested ParticleDB with SQLancer, which generates far more complex queries than the ones we tested. It is therefore perplexing that nearly every feature we tested exhibited glaring errors, and that our findings seemed to come as a surprise."

mxey 6 hours ago|||
Seems to me that “we ran the Jepsen test” is just something an LLM thought would sound good on a DB’s website.
eqvinox 1 hour ago|||
They probably asked an AI to run the tests against their DB. And the AI said "yeah I ran it, all green!" (except with a lot more words and perfect grammar, and maybe a few section headings and emoji.)
throwaway737488 4 hours ago||
I am wondering how this was allowed to be tested from a corporate strategy point of view of the company Orkes.

This is such a huge reputational hit, seems like a terrible outcome for a Series B company funded by big name VCs

What does this say about their main product?

shoo 4 hours ago|
> how this was allowed to be tested

I can see it happening if they genuinely had no idea of how defective / non-existent their internal QA & testing processes were.

jeremyjh 2 hours ago||
Exactly, this is the takeaway. The agents are running everything, the humans have no idea what is going on.
yipinwong 6 hours ago||
Great to implement a DB just like human memory, unstable, and untrustworthy.
TexanFeller 2 hours ago||
Is there any concrete evidence they vibe coded it? It seems 100% self-evident, but have we actually ruled out human hubris and gross incompetence?
Thaxll 7 hours ago|
Slop DB written in Rust. They probably changed the landing page after the bad results, you can still see the old one: https://web.archive.org/web/20260518203012/https://particled...

"Written in Rust · Formally Verified · PostgreSQL Compatible"

More comments...