v6.0.0
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_THRESHOLDis accepted but ignored: effects are now the only replication mechanism.GRAPH.CONFIG GETstill returns the value you set, so existing config files keep working.TIMEOUTstays deprecated, as in 4.x. UseTIMEOUT_DEFAULTandTIMEOUT_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.BULKno 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.SPpathson large graphs, and shutdown under heavy telemetry. - Wrong-result fixes around
NULL(joins,CASE, compositeUNIQUEconstraints), 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.INFOoutput, NUL bytes in queries, andINFOno longer showing RediSearch's version as FalkorDB's (#2915). - Docker image fixes: the bundled Browser starts, and
redis-sentinel,redis-check-rdbandredis-check-aofare back.
The full list is in the pull requests merged into main since #2279.