Jepsen: ParticleDB 1.1.4

(jepsen.io)

103 points | by aphyr 6 hours ago

20 comments

  • amluto 4 minutes ago
    I’ve come to learn an interesting dichotomy in software:

    Some software is correct by construction, in the sense that the overall design makes sense and the cases that don’t work are generally local bugs.

    Some software is incorrect by construction, and it tends to work by some combination of luck and by carefully working around the incorrect design in most or all code paths that could expose the incorrectness. (AI can be quite effective at finding the relevant places to insert workarounds.)

    ParticleDB sounds like the latter category. Plenty of large projects have portions that are in one category and portions that are in another.

    As an aside, for the last day or two, I’ve been contemplating that the Linux kernel’s handling of folio pinning seems to be in the incorrect-by-construction category. Good times. No, I haven’t found a hard-to-fix bug that I would credibly characterize as a security or likely accidental corruption issue [0], but this seems mostly like luck.

    [0] I do appear to have re-discovered a bug that some massive Anthropic dump from a couple months ago also found, and it’s getting fixed. If your application does “fixed” io_uring I/O or certain types of iommu-based or maybe RDMA on a memfd, you might plausibly encounter it on rare occasions. I didn’t bother making a reproducer.

  • the_duke 2 hours ago
    Brutal!

    > ParticleDB 1.1.4 claimed to be a Postgres-compatible database ... Instead, we found a library of confusion

    > exhibited frequent, profound transactional anomalies in essentially every way we could measure. We routinely observed the loss of committed writes, internal consistency violations, G1a (Aborted Read), G1b (Intermediate Read), and P4 (Lost Update). In the append workload, successfully appended values would routinely disappear from later reads of a given key. Our test suite inferred every kind of cyclic anomaly including G0, G1c, G-Single, and G2-item, but many of these can be attributed to more basic issues, like write loss. These issues occurred with a single server and without faults, and affected every transaction mode, interface, and WAL mode tested

    • nikez96 26 minutes ago
      I'm part of the ParticleDB team. We took these findings seriously and have spent the past few months addressing them and strengthening our testing. We now run sustained Jepsen workloads daily alongside our own test suites. We've also narrowed the supported transaction modes to focus development and testing on core correctness.

      Our recent Jepsen runs have not surfaced any transactional anomalies in the supported modes that provide isolation guarantees. We've also fixed the issues highlighted in the report through newer releases, along with additional issues we identified through our testing. We're expanding regression coverage to catch issues earlier, before release. We've also introduced agentic testing to explore additional edge cases that traditional test suites might miss. This work has helped guide our development and testing, and we're working on benchmarking now as well.

    • jarym 1 hour ago
      Writing databases is an EXTREMELY fun learning endeavour but it is truly difficult to do correctly.
      • BiraIgnacio 42 minutes ago
        Once I started writing one (I could say I still am) because I was unhappy with most of them and also, to see how hard it could be

        Alas! It turns out it's really hard to do it right.

    • random3 1 hour ago
      I wonder if it’s vibe coded by amateurs
    • d5wiz 1 hour ago
      these were tests done on pre release builds and some experimental concurrency modes as well.... The engine has since been redesigned and all of these issues have been fixed..

      Its also faster than Redis for KV, also numbers show this should be top on clickbench, official submission is in progress

      • fabian2k 1 hour ago
        Why should anyone believe that? I mean it might be true, I don't know. But if such a report turns out many fundamental issues it doesn't quite sound plausible that a redesign would suddenly not have any issues anymore. It might have fewer issues, it likely will have different issues as well though.
        • rat9988 1 hour ago
          Because this is why companies pay for jepsen tests. Not because they enjoy to be destroyed in jepsen report, but to fix the issues.
          • cwillu 1 hour ago
            This is like paying for a pentest of a treehouse, and claiming that this implies the updated treehouse with a working padlock instead of a novelty lock is in the same league as a bank or a data center.

            It makes mongodb from the report a decade ago look good.

            • rat9988 45 minutes ago
              I'm not saying it is proof it is done. But most likely they are working on it
          • fabian2k 1 hour ago
            Most Jepsen tests leave me with the impression "databases are damn complicated and difficult to get right". My thoughts with this particular report are "I'll never ever touch this DB if I can help it".
      • foltik 1 hour ago
        Ok sure, so an LLM told you all the bugs are fixed and it’s faster than Redis, just like how it told you before that it was formally verified?

        Please try to resist the urge of being a meat proxy.

        • jen20 1 hour ago
          > before that it was formally verified

          Jepsen is a fantastic tool - and one every database engineering team should have in their arsenal - but it proves the presence of bugs, not the absence of them. It is not formal verification, just a more rigorous form of existential testing.

          • foltik 48 minutes ago
            I was referring to this claim from before the Jepsen report, which they have of course now quietly removed:

            > ParticleDB’s home page advertised that ParticleDB was “formally proven” with a TLA+ proof. However, during our collaboration no TLA+ specification was available.

      • d1l 1 hour ago
        Bro you've got to be kidding. pre-release builds? Aphyr directly addresses this in this analysis. Furthermore, given the absolutely ridiculous nature of some of these bugs, and the low confidence exhibited by the authors in the fixes, how can anyone assume that suddenly things are correct? The database was so janky that it sounds like most of the time was spent on basic bugs that a decent set of unit-tests would've caught. Who knows what wasn't uncovered because the db was so broken to begin with?

        I mean did you see the "primary key equality" thing? Holy shit.

      • kubelsmieci 1 hour ago
        > and all of these issues have been fixed..

        You can't be sure until they test it again

      • the_duke 1 hour ago
        I look forward to the second report from Jepsen for the new implementation then.
  • tensegrist 1 hour ago
    > ParticleDB’s home page advertised that ParticleDB was “formally proven” with a TLA+ proof. However, during our collaboration no TLA+ specification was available. It is unclear what properties might be proven, or whether they described ParticleDB as built.
  • edude03 2 hours ago
    > We present 96 issues in ParticleDB, ranging from the pedestrian (crashes, deadlocks, data loss, etc.) to the piquant (partially-invisible rows which could not be deleted, WHERE 4 = 5, dropped tables re-emerging in distorted forms, confused columns, strings turning into integers, and so on).

    Definitely seems worse than usual (looking back most databases seem to have <10 issues total, and the majority seem "mild") - since it's a database for AI was it also likely vibe-coded or just new? Then again even if new, I wouldn't expect so many issues in a stable release

    • cwillu 2 hours ago
      The discussion section of the report is very damning.
    • d5wiz 1 hour ago
      [dead]
  • mxey 1 hour ago
    It’s wild how bad it is. Not surprising for a vibecoded database, but why did they hire Kyle for a test, instead of first doing ANY testing themselves?
    • jonstewart 53 minutes ago
      No doubt because the LLM said it was ready to pass Jepsen.
  • wofo 52 minutes ago
    > Given the severity and extent of the safety errors we found, and the process which produced them, Jepsen recommends users halt further deployment of ParticleDB and migrate to other databases as soon as possible. Consider checking and/or rebuilding database state from more reliable sources, if available.

    I guess that's what happens when you vibecode a database...

  • antirez 1 hour ago
    Imagine asking for a review before checking with the brutally powerful agents we have today all the low hanging fruits. And, at the point we are, you can likely go at incredible levels of automated bugs seeking and do the whole test in house.
    • aphyr 1 hour ago
      My understanding is that Orkes did, in fact, ask AI agents to test ParticleDB in-house prior to our collaboration.
  • t3ntxcles 1 hour ago
    Shipping a bug like "WHERE 4 = 5" returning rows says it all to me
  • throwaway737488 9 minutes 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?

  • Powdering7082 4 hours ago
    > ParticleDB’s home page advertised that ParticleDB was “formally proven” with a TLA+ proof.

    Perhaps they meant formerly, probably just a speech to text problem

    • lumost 2 hours ago
      TLA+ doesnt prove the code. if they never read the proof, then how do we k ow that it proved the right things?
      • hibikir 2 hours ago
        And you still have to make sure all the real constraints are in. I had to fix a proven correct distributed algorithm that just happened to believe updates were done atomically and with no latency.
    • wavemode 2 hours ago
      lol, reminds me of the common misreading "provably safe" / "probably safe"
  • semiquaver 1 hour 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.

      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?

    • semiquaver 34 minutes ago
      Sorry to reply to my own comment but they are also lying when they claim to pay top of market on https://orkes.io/careers

      $180K in CA for someone who reports directly to the head of engineering is not even top of market for Topeka, KS.

  • CodesInChaos 2 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 2 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 1 hour ago
        Seems to me that “we ran the Jepsen test” is just something an LLM thought would sound good on a DB’s website.
  • pluto_modadic 2 hours ago
    Aphyr does great work, Jepsen always kicks it out of the park :)
  • yipinwong 1 hour ago
    Great to implement a DB just like human memory, unstable, and untrustworthy.
  • _bohm 2 hours ago
    Is/was ParticleDB open source? There is a Github link on their website, however the only public repo in their org seems to be the Golang client library.
  • stacktraceyo 1 hour ago
    Fatality
  • Thaxll 2 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"

  • quietbarn 1 hour ago
    [flagged]
  • Powdering7082 4 hours ago
    -https://github.com/jepsen-io/particledb is currently 404 (probably still private?)-

    EDIT: It's up now

    • aphyr 3 hours ago
      Sorry about that--yes, it's still private. Hoping to have that resolved shortly.
    • dang 3 hours ago
      Looks like it's up now. I'll put that link in the toptext as well. Thanks!
  • stevenburg 1 hour ago
    [flagged]