Skip to content

Bump com.arcadedb:arcadedb-engine from 26.8.1 to 26.9.1 - #29

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/maven/com.arcadedb-arcadedb-engine-26.9.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/maven/com.arcadedb-arcadedb-engine-26.9.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 11, 2026

Copy link
Copy Markdown
Contributor

Bumps com.arcadedb:arcadedb-engine from 26.8.1 to 26.9.1.

Release notes

Sourced from com.arcadedb:arcadedb-engine's releases.

26.9.1

ArcadeDB 26.9.1

Overview

This is the largest release ArcadeDB has ever shipped: 992 issues and pull requests closed under the 26.9.1 milestone - 675 issues and 317 pull requests - out of 655 pull requests merged and 1,500 commits in total since 26.8.1.

The headline work is in five places:

  • Backup and restore - a full backup is 27.6x faster, a restore runs in parallel, and neither freezes page flushing any more, so writers keep working while a backup runs.
  • Storage integrity - the family of defects around records that outgrow a page is closed: silent lost updates, a record returned twice by a scan, false conflicts, and a 16% chunk-slot space leak that nothing ever reclaimed.
  • Query correctness - NOT IN on an indexed property returned the IN result set, DISTINCT ... ORDER BY ... LIMIT returned too few rows, a multi-key GROUP BY grouped on the last key only, and an index range scan could return rows the WHERE clause excluded. All fixed, with regression tests.
  • Indexes are used where they were not - a literal IN (...) list, a composite-index prefix with ORDER BY, BETWEEN, @rid IN [...] and a Cypher label disjunction all take the index now instead of a full scan.
  • Vector search - opening a database is constant-time again regardless of index size, rebuilds are scheduled instead of blocking the first query, and recall stopped degrading past 10,000 vectors.

Upgrading is strongly recommended for every deployment. There are breaking changes and behaviour changes - they are collected in Breaking changes and upgrade notes and each is called out again where it belongs. No schema migration is required, and no existing database is rewritten.

Contents: Highlights · Security advisories · New features · Major fixes and improvements · Breaking changes and upgrade notes · Dependency updates


Highlights

Backups are 27.6x faster and no longer stall the database

A full backup ran single-threaded deflate at level 9, CPU-bound at 20-40 MB/s, and it suspended page flushing for the whole window: dirty pages piled up until arcadedb.flushSuspendMaxDeferredRAM was reached, committers were throttled, and LSM compaction was postponed. HA snapshot shipping and cluster verify did the same thing (#6072, #6075, #6086).

Measured on a 1.25 GB database:

measurement before after
full backup 18.88 s 0.68 s (27.6x)
concurrent writer throughput during the backup 4.3% of baseline 77% of baseline
restore 2.9 s 0.68 s
archive size 323 MB 348 MB (+7.5%)
  • Parallel compression, tunable with arcadedb.backup.compressionLevel (new default 1, was 9), arcadedb.backup.compressionThreads and arcadedb.backup.maxMBPerSecond. The ZIP format is unchanged and archives written by older versions restore normally.
  • Parallel restore, largest entry first, behind a 256 KB buffered read instead of ZipInputStream's unbuffered 512-byte reads (arcadedb.restore.threads). Even the sequential path went 5.16 s to 3.96 s.
  • A page-level copy-on-write snapshot replaces flush suspension: arcadedb.pageSnapshotEnabled, arcadedb.pageSnapshotMaxRAM, arcadedb.pageSnapshotMaxSize, arcadedb.pageSnapshotSpillPath. Backups, HA snapshot shipping and the /checksums endpoint now take a point-in-time view without ever stopping the flusher.
  • Two JVM-wide stalls are gone with it. The deferred-flush backpressure gate was process-wide, so one database's backlog stopped the flush thread for every database on the server (#6200), and publishPages blocked inside the global page-manager lock whenever the flush queue filled, serialising the commits of every database behind one database's write burst (#6259). Both are now per-database.

Records larger than a page: lost updates, phantom rows and a 16% space leak

A record that outgrows its page is stored as a chunk chain or behind a placeholder pointer. Re-triaging #5279 turned up a whole family of defects on that path, every one of them silent:

  • A lost update. Two transactions updating the same placeholder-backed record (pointer on one page, content on another) both committed and one write vanished, with no ConcurrentModificationException (#6141). The content page is version-checked now, so the conflict is raised.
  • A record returned twice. A SELECT returned a placeholder-backed record under two different RIDs when its content had spilled into chunks, so count(@rid) reported 2 for one record (#6196).
  • A 16% space leak. CRUDTest.multiUpdatesOverlap ended with 243,821 orphaned chunk slots out of 1,545,495 because a shrink ending exactly on a chunk boundary never freed the tail, and nothing ever reclaimed them although three code comments promised otherwise (#6319, #6294). CHECK DATABASE FIX now sweeps them and reports orphanedChunks / orphanedChunksReclaimed.
  • False conflicts. Reading a multi-page record failed with "was modified during read after N retries" when an unrelated record's chunk on a shared page was written (#6217), and eight threads rewriting different large records on one page got ConcurrentModificationException with five of eight exhausting TX_RETRIES (#6129). Chunked head slots take part in the disjoint-slot merge now, and a read validates only its own chain.
  • A permanent size ratchet. A chunked record's head chunk shrank to the smallest size it ever had and never recovered, so a record oscillating in size degraded for ever into a longer chain with unusable gaps (#6163). A record that shrinks back inside its slot is now collapsed to a plain record again (#6178, #6286).

... (truncated)

Commits
  • b6a9262 Set release version to 26.9.1
  • 9cea8e8 chore: removed temp files
  • d94f25b Merge pull request #7117 from ArcadeData/fix/issues-7109-7110-7111-7112
  • d696f47 fix(#7110): judge the pre-packed vararg shape per overload during specificity...
  • b8150d0 fix(#7110): overload specificity spans the longest applicable signature, incl...
  • 82b89fc docs: state the one remaining key tie in compareKeys; drop the Javadoc-only F...
  • 3b8f0df fix(#7110): the overload winner must be strictly more specific than every oth...
  • 1811ac5 docs: precise sameKeyValue Javadoc; note the untested transferTo boundary in ...
  • dc2e8b7 fix(#7111): strict map key order for comparator-equal distinct keys; overwrit...
  • fbf459e fix(#7109,#7111): route the FULL_TEXT BY ITEM update through the shared key e...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.arcadedb:arcadedb-engine](https://github.com/ArcadeData/arcadedb) from 26.8.1 to 26.9.1.
- [Release notes](https://github.com/ArcadeData/arcadedb/releases)
- [Commits](ArcadeData/arcadedb@26.8.1...26.9.1)

---
updated-dependencies:
- dependency-name: com.arcadedb:arcadedb-engine
  dependency-version: 26.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants