v6.0.0

macro-inc/macrov6.0.0Sep 29, 2026by DvirDukhan

Upgrading?

AI Summary

Major release introducing a new Rust-based query engine while maintaining API compatibility, featuring a new replication protocol and RediSearch upgrade.

Key Highlights

  • Complete rewrite of the query engine in Rust.
  • New replication format using effects (v3) instead of re-running queries.
  • Upgrade to RediSearch 8.6.1.
  • Removal of Alpine images and older module builds.

Breaking Changes

  • Replication protocol incompatibility between 4.x and 6.0 nodes.
  • Configuration change: `EFFECTS_THRESHOLD` is now ignored.
  • Package changes: Alpine images removed, `edge` tag points to Rust engine.

New Features

  • Rust-based query engine.
  • New effects-based replication mechanism.
  • RediSearch 8.6.1 integration.
  • Improved memory handling in `GRAPH.BULK`.

Full Release Notes

# FalkorDB 6.0.0

FalkorDB 6.0 is the first release of the new FalkorDB engine, written in Rust. It replaces the C engine that shipped in every 4.x release.

For applications nothing changes: it is still a Redis module named `graph`, with the same `GRAPH.*` commands, the same Cypher, and the same client libraries. What changes is how replication works and which packages are published. Read **Upgrading from 4.x** before moving a production deployment.

## Upgrading from 4.x

### Replication
**Don't mix 4.x and 6.0 in the same primary/replica set.** 6.0 replicates writes only as effects in a new format, v3 (#2570, #2754), which 4.x can't read, and 6.0 can't apply the effects 4.x sends. Upgrade every node in a replication group together.

### Configuration
- `EFFECTS_THRESHOLD` is accepted but ignored: effects are now the only replication mechanism. `GRAPH.CONFIG GET` still returns the value you set, so existing config files keep working.
- `TIMEOUT` stays deprecated, as in 4.x. Use `TIMEOUT_DEFAULT` and `TIMEOUT_MAX`.

## Packages

**Docker.** `falkordb/falkordb` and `falkordb/falkordb-server` on Docker Hub and GHCR:

| Tag | Now points at |
|---|---|
| `6.0.0`, `latest` | 6.0 (Rust engine), amd64 + arm64 |
| `edge` | the latest `main` build (Rust engine); `edge-rs` is a deprecated alias |
| `v4.x.y`, `edge-c` | the C engine, unchanged |
| `latest-alpine`, `*-alpine` | still the C engine (4.20.7). 6.0 has no Alpine images. |

The `falkordb/falkordb` image bundles FalkorDB Browser on port 3000, as before.

**Module binaries** attached to this release, with `SHA256SUMS`:

| Asset | Platform |
|---|---|
| `falkordb-x64.so` | Linux x86-64 |
| `falkordb-arm64v8.so` | Linux arm64 |
| `falkordb-rhel9-x64.so` | RHEL 9 x86-64 |
| `falkordb-amazonlinux2023-x64.so` | Amazon Linux 2023 x86-64 |

4.20 also published Alpine, RHEL 8, macOS and `debug-*` builds. 6.0 does not publish those yet.

## What's different from 4.20.7

- **New engine.** The query engine is new code, written in Rust. Your queries and clients carry over: the `GRAPH.*` commands and Cypher are the same.
- **Replicas apply changes, they don't re-run queries.** 4.x sent some writes to replicas as the query text, and the replica ran the query again. 6.0 always sends the resulting changes, so a replica never re-executes a write. `EFFECTS_THRESHOLD`, which chose between the two, is now ignored.
- **Newer search engine.** Full-text and vector indexes run on RediSearch 8.6.1, up from 2.6.23. Full-text scoring still defaults to TFIDF, so scores match 4.x.
- **`GRAPH.BULK` no longer reserves memory from the counts a client declares up front,** so a wrong or malicious count can't exhaust the server's memory (#2444).
- **Same Redis.** 6.0 is built on Redis 8.10.2, as is 4.20.7.

## Not in 6.0 yet

**Algorithms.** 6.0 has the same procedures as 4.20.7, and you lose nothing by upgrading. These algorithms were developed for the C engine after 4.20 and have not shipped in any release. They are being ported to the new engine:
- **A\* shortest paths** (`algo.AStar`), guided by latitude/longitude, with a k-shortest-paths variant (#2947).
- **Customizable Contraction Hierarchies** (`algo.CCH`, `algo.CCH.query`), for fast repeated shortest-path queries (#2948).
- **Leiden and Louvain community detection** (`algo.leiden`, `algo.louvain`), still in development (#2949).

**Packages.** 6.0 publishes no Alpine images, and no Alpine, RHEL 8, macOS or `debug-*` module builds (see Packages). `latest-alpine` stays on 4.20.7.

**Mixed-engine replication.** A 4.x node and a 6.0 node can't replicate to each other (see Upgrading from 4.x).

## If you ran the preview images (`edge`, `edge-rs`)

The new engine has been available as a preview since August. Changes since then:

- **Faster queries,** especially filters and label checks, multi-hop traversals, queries with many parameters, aggregations, and deleting nodes.
- **Less memory** on write-heavy workloads.
- **Crash and hang fixes:** very deeply nested expressions, nested index scans, pattern comprehensions, `algo.SPpaths` on large graphs, and shutdown under heavy telemetry.
- **Wrong-result fixes** around `NULL` (joins, `CASE`, composite `UNIQUE` constraints), a label removed and re-added in one query, and deleting an edge created earlier in the same query.
- **Closer to 4.x behaviour:** `GRAPH.INFO` output, NUL bytes in queries, and `INFO` no longer showing RediSearch's version as FalkorDB's (#2915).
- **Docker image fixes:** the bundled Browser starts, and `redis-sentinel`, `redis-check-rdb` and `redis-check-aof` are back.

The full list is in the pull requests merged into `main` since #2279.

Related Repositories