Skip to content

A handful of pull requests... #1300

Description

@brettwooldridge

I am sorry to have spammed your pull requests. We migrated from Xodus to NitriteDB in our latest product release. Unfortunately, our automated testing did not uncover any issues, but when we got into production all hell broke loose.

We encountered several crashes, and performance issues that effectively locked our servers. All of these were traced down to their root causes. We have generated pull requests for these. One or two of the pull requests are minor performance improvements, but the majority are either critical path bugs or critical path performance issues.

I hope you look upon these pull requests favorably, in the spirit in which they are intended. We need NitriteDB to be solid.

In addition, we are currently developing a multitheaded load test harness to try to uncover any additonal issues. When it is done, we will be happy to share it.

Even with all of the above fixes, our AI is uncovering issues like this:

Nitrite disabling retention time and version keeping on every store is risky in H2, since a retention time of zero means freed chunks can be overwritten immediately—dangerous with concurrent readers if a disk page from a reused chunk gets read before it's evicted from cache, potentially causing corruption.

(and that corruption was observed during a load test)

Retention time is the key factor — the 45s run survived two restarts while every retention-zero variant (including stock H2 2.4.240) failed at the first close, matching two still-open H2 issues.

All five zero-retention runs corrupted on first close, while all runs with default H2 settings survived — confirming Nitrite's adapter has forced those settings to zero since 2020.

Thanks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions