RedisGraph 2.8 release notes
Introduces multi-labeled nodes, indexes over relationship properties, and additional expressivity (Cypher construct, functions, and operators). Major performance enhancements. Many bug fixes.
Requirements
RedisGraph v2.8.26 requires:
- Minimum Redis compatibility version (database): 6.2.0
- Minimum Redis Enterprise Software version (cluster): 6.2.8
v2.8.26 (March 2023)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
v2.8.25 (February 2023)
This is a maintenance release for RedisGraph 2.8.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Details:
-
Bug fixes:
- #2890 Potential wrong results on variable-length path
v2.8.24 (February 2023)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
-
Improvements:
- #2758 Improved edge deletion performance
v2.8.21 (January 2023)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
- #2754 Partial sync may hang (MOD-4594)
- #2695 Potential crash on certain write queries (MOD-4286, MOD-4545)
- #2637, #2460, #2680 Crash on invalid queries
- #2484 Indexes can be created on invalid property names
- #2672 Wrong matching result on multiple labels
- #2643 Duplicate reports when matching relationship type
:R|R
- #2687, #2414 Error when
UNWIND
ing relationships - #2635 Cannot
UNWIND
an expression that is not a list - #2636
MERGE
...ON
... - cannot remove a property by setting it to null
-
Improvements:
v2.8.20 (September 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Details:
-
Bug fixes:
-
Improvements:
- #2533 Graph slow log can be reset with
GRAPH.SLOWLOG g RESET
- #2533 Graph slow log can be reset with
v2.8.19 (August 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Details:
-
Bug fixes:
-
Improvements:
- #2519 When a query is cached and then a relevant index is created, recalculate the execution plan
v2.8.17 (July 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
v2.8.16 (July 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
v2.8.15 (June 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
v2.8.14 (June 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Features:
-
Bug fixes:
v2.8.13 (May 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
- #2351 Potential memory leak on query timeout
- #2348 Crash when converting certain Cypher queries to RediSearch queries
- #2331 Two memory leaks (one on failed RDB loading, one on certain invalid queries)
- #2328, #2306, #2307, #2326 Disallow redeclaration of variables; fixed false redeclaration errors
- #2363 Nodes were sometimes created with more labels than those specified
v2.8.12 (May 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Bug fixes:
- #2278, #2301 Potential crash on bulk update
- #2262, #2271, #2272, #2273, #2282, #2288, #2299, #2312, #2321, #2325, #2323 Potential crash on certain queries
- #1441 Query returns wrong result: projection before Cartesian product causes only one result to be returned
- #2298 Query returns wrong result: wrong value when fetching a string property from a map
- #2318 Memory leak
GRAPH.QUERY g "MATCH (e) RETURN e, e"
is not valid. If you need to return the same column twice, you can rewrite the query as GRAPH.QUERY g "MATCH (e) RETURN e, e as e2"
.v2.8.11 (March 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
v2.8.10 (March 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: HIGH
: There is a critical bug that may affect a subset of users. Upgrade!
Details:
-
Features:
-
Bug fixes:
- #1493, #2240 Fixed crash on certain queries
- #2229, #2222 Fixed crash on certain queries
- #2209, #2228 Fixed crash on certain invalid
DELETE
queries - #2237, #2242 Fixed crash on certain
PROFILE
queries - #2230, #2232 Fixed wrong number of reported deleted relationships on certain queries
- #2233 Certain valid queries were reported invalid
- #2246 Fixed memory leaks
-
Improvements:
v2.8.9 (March 2022)
This is a maintenance release for RedisGraph 2.8.
Update urgency: MODERATE
: Program an upgrade of the server, but it's not urgent.
Details:
-
Features:
-
Bug fixes:
- #2167 Fixed a potential crash: filter placement in
OPTIONAL
subtrees - #2176 Fixed a potential crash: invalid memory access in nested
DISTINCT
functions - #2217 Fixed a potential crash: memory access after free on
FLUSHALL
- #2207 Fixed memory leak when
MAX_QUEUED_QUERIES
is used - #2220
WITH * WHERE
- theWHERE
filters were ignored - #2151 Return correct results for aggregations with no inputs
- #2163 Emit error correctly on multi-query inputs
- #2167 Fixed a potential crash: filter placement in
-
Improvements:
- #2173 Improve performance of breadth-first search
v2.8 GA (v2.8.8) (February 2022)
This is the General Availability release of RedisGraph 2.8.
Highlights
RedisGraph 2.8 introduces multi-labeled nodes, indexes over relationship properties, additional expressivity (construct, functions, and operators), major performance enhancements, and many bug fixes.
What's new in 2.8
-
Multi-labeled nodes
Note:Thelabels
function's signature has changed. The function now returns a list of labels instead of a single label.
If you are using this function and upgrading to RedisGraph 2.8, a simple fix is to replace any call tolabels(x)
withlabels(x)[0]
. This returns the first label associated with nodex
. For uni-labeled nodes, the result in RedisGraph 2.8 is similar to the results oflabels(x)
in RedisGraph 2.4. -
Indexes over relationship properties
-
Enhanced full-text search
-
Delta matrices: node and relationships additions and deletions are much faster, as they are first updated in small delta matrices. The main matrices are then bulk-updated.
-
Additional Cypher construct, functions, and operators
-
RediSearch 2.2.7
-
SuiteSparse (GraphBLAS) 6.0.0
Details
-
Features (since 2.8-M02):
- #2109 Introduce
allShortestPaths
BFS function - #2099 Introduce
keys
function - #2047 Introduce
reduce
function - #2076 Introduce XOR operation in filter trees
- #2088 Introduce pattern comprehensions
- #2051 Allow copying of entity attribute sets in
SET
clauses - #2067 Allow modification of virtual key entity count (
VKEY_MAX_ENTITY_COUNT
) at runtime - #2102 New load time configuration option
NODE_CREATION_BUFFER
- see documentation (MOD-2348) - #2049 RediSearch supports field definitions
- #2109 Introduce
-
Performance improvements (since 2.8-M02):
- #2097 Locks favor writers to prevent write exhaustion
- #1945 Track node count per label in graph statistics
- #1872 Delta matrices are always hypersparse
- #1871 Matrix sync policies reduce the number of syncs required
- #1869 Transposed matrices are always boolean
- #2101 Entity annotation has been replaced with an AST
toString
function - #1878 Slowlog queries no longer create graphs
- #2067 Index graph entities incrementally on restore
- Faster AOF recovery (PM-1252)
-
Bug fixes (since 2.8-M02):
- #2016 Implement new BFS algorithm
- #2105 Creating a node with multiple properties using the same key only accepts the last value
- #2055 Avoid arithmetic overflow in
avg
function - #2048 Modulo by zero emits division by zero error
- #2020 Fix evaluation of variable-length edges in expression ordering
- #2028 Fix utilization of record offset in procedure calls, refactor outputs
- #2014 Update label for every node in the AST
- #2002 Fix crash in index utilization using wrong query_graph
- #1976 Use operand matrix when available
- #1973 Emit error on a query that only contains parameters
- #1950 Print ExecutionPlan in
GRAPH.EXPLAIN
only if no errors are encountered in the construction - #1933 Free thread-local data on graph deletion
- #1942 Fix dimensions of transposed delta matrices
- #1940 Do not use block client if deny blocking is specified
- #1898 Error when setting a property to an array containing an invalid type
- #1931 Sync matrices on parent process before serialization fork
- #1897 Aliases in
WITH
...ORDER BY
must be valid references - #1913 Update thread-local AST for every cloned operation
- #1915 Validate function references in parameters
- #1911 Refactor
cron
task for managing query timeouts - #1902 Fix incorrect behavior on
NULL
values inCASE
...WHEN
expressions - #1904 Allow reconfiguring query timeout to 0
- #1888 Synchronize matrices on creation in RDB load
- #1892 Validate values specified in
SET
clauses - #1889 Tuple iterator now updates properly when changing matrix to serialize
- #1870 Fix crash in
range
function - #2125 Fix crash on
UNION
...RETURN
* queries (MOD-2524) - #2043 Avoid serialization of duplicate graph keys
- #2067 Numeric indices no longer lose precision on very large values
- #2072, #2081 CRLF sequences embedded in strings no longer trigger a protocol error when being emitted
- #2139 Fix crash when trying to retrieve an out-of-bounds item
- #2149 Fix crash when matching a node engages an index to search for a value that is a RediSearch stop word