Download Latest Version v3.4.0 source code.tar.gz (3.0 MB)
Email in envelope

Get an email when there's a new version of Memgraph

Home / v3.3.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-06-02 5.1 kB
v3.3.0 source code.tar.gz 2025-06-02 2.9 MB
v3.3.0 source code.zip 2025-06-02 4.6 MB
Totals: 3 Items   7.5 MB 0

Memgraph v3.3.0 - June 4th, 2025

✨ New features

  • New bolt work scheduler based on a priority queue with a sidecar channel for high priority queries. Users should never see a blocked database due to heavy load. Users can now run specific high priority queries even under heavy loads (example: SHOW TRANSACTIONS). 2567
  • Added support for creating indices on nested properties within maps. Users can now create efficient indices on deeply nested data structures using dot notation, such as CREATE INDEX ON :User(preferences.notifications.email), eliminating the need to flatten complex nested properties for query performance.** #2934
  • Establishing the connection between sockets now has a timeout of 5s. Users can expect lower and more predictable p99 latencies for the time needed to establish a socket connection. The timeout for StateCheckRpc and FrequentHeartbeatRpc is reduced to 5s. This will help heartbeat mechanisms to figure out faster when the instance is down or when some steps need to be taken to bring replica to the same level on which the main is. #2949
  • Memgraph now exposes a new set of metrics on HA cluster: how long the data failover takes and how long starting and finalising transaction takes on replica instances. #2965

🛠️ Improvements

  • Updated PropertyValue structure to use PropertyId keys for improved performance, reduced memory usage, and simplified handling. Introduced ExternalPropertyValue type with string-keyed map for human-readable property names in parsing/serialization contexts. #2901
  • Added daily build of RelWithDebInfo Docker image for arm64. Allows ARM users to debug bleeding edge Memgraph builds. #2996

🐞 Bug fixes

  • Fixed memory leaks in several C++ API functions, including those related to vector search, text search, index management, and constraints.** #2934
  • TTL, streams and CSV import could fail when using auth modules. When using auth modules, we require a user/role. In these specific cases we want an empty user, which fails on creation. Users can now use stream, TTL and init from cypher file with auth modules. 2967
  • utils::Scheduler wouldn't use strict increments when tasks took longer than the period. This would cause the start time to drift. Users could have seen this when running TTL on v3.2. Now the start time will be respected. In cases where tasks take longer, the next execution will be immediate, but subsequent will follow the schedule. 2970
  • The asynchronous replication is improved for situations in which the recovery task would've finished while another transaction is getting replicated. Previously, such transaction would never get replicated on async replica which wasn't the intended behaviour. #2973
  • When an instance becomes main, it marks a range of transactions with IDs smaller than global timestamp used in replication as finished. This should ensure consistent memory behaviour both on main and replicas. In the same way, transactions will be also marked finished when SnapshotRpc is received or when the RECOVER SNAPSHOT query is used on the standalone Memgraph. #2976
  • Tasks for checking replica state and recovery task can now be skipped if it is impossible to get unique access to RPC lock for ASYNC replicas. This is to ensure that the commit task executes as soon as possible so that the deadlock between commit and recover tasks cannot happen anymore. There are no UX-wise changes but users can expect more reliable ASYNC replication. #2984
  • Main instance won't block while trying to acquire RPC stream for replicating txn to ASYNC replica. It will instead consider replica as maybe behind. User can expect deadlock-free behavior when using ASYNC replica. Commits will happen faster while the replication lag will be a bit bigger. #2989
  • Made parallel snapshot more flexible while combining temporary file into a single snapshot. Users are now less restricted on the batch size they can use. 2995
  • Fixed queries using WHERE ... IN clauses no longer return an empty results set when using label+property indices. #3014
  • Fixed memory leak that occurred when queries updated deeply nested properties. Users can now safely create queries that update nested map properties without risk of eventual out-of-memory errors. #3016
Source: README.md, updated 2025-06-02