Name | Modified | Size | Downloads / 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. IntroducedExternalPropertyValue
type with string-keyed map for human-readable property names in parsing/serialization contexts. #2901 - Added daily build of
RelWithDebInfo
Docker image forarm64
. 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