Release notes

Release notes

Check out the latest updates and enhancements to Memgraph’s products. Discover what’s new and understand the pivotal shifts that might affect your experience. Dive into detailed listings of each version’s changes, ensuring you stay informed and prepared.

🚨 Important updates

New releases might affect your existing code, queries or configuration. Ensure they’re updated to align with the latest updates and changes.

Link prediction, node classification, and the text module, which were temporarily removed in MAGE v1.14.0, are available again from v1.22.0 onward.

Memgraph Platform image is no longer supported

Starting with version 2.15, Memgraph Platform transitions to a multi-container application. This upgrade moves from a single Docker image to separate containers for Memgraph+MAGE and Memgraph Lab, utilizing Docker Compose for deployment and management.

For detailed setup instructions and best practices, please refer to the Docker Compose documentation for Memgraph Platform.

Please note that the Memgraph Platform Docker image is no longer being updated.

🚀 Latest release

Memgraph v2.22.1 - Dec 22, 2024

🛠️ Improvements

  • The convert.str2object function was rewritten from Python to C++ so Python GIL does not bottleneck it. Users are now able to achieve the necessary parallelization improvements. #2532
  • Added SHOW INSTANCE query to expose more information about the coordinator instance to which the user is connected. The query returns: instance_name, bolt_server, coordinator_server, management_server and cluster_role. #2526
  • Added REMOVE COORDINATOR <ID> query. Only followers can be removed from Raft logs. The request to remove a leader won’t be accepted in Raft logs. #2533
  • Updated librdkafka to v2.6.1. You can expect better stability on the Kafka streaming side. #2523

🐞 Bug fixes

  • Fixed a bug when a replica received an old WAL file by ignoring it. Previously, a replica could receive a WAL file that contains all old data. If that is the case, the old epoch would be added to the history together with the current durable timestamp on the replica, causing the wrong information contained inside the replica. Replicas shouldn’t naively use data from WAL files received. #2552
  • Fixed a subtle memory leak. The skip_list used for async timers was previously not being collected. --query-execution-timeout-sec caused an allocation that was small but not free. #2539
  • Fixed error message when unloading query message with a correct description of what happens. An additional reason why the unloading of a module might fail is that the module might not exist. #2547
  • Fixed planner so it can always generate at least one valid plan. Valid plans are currently all the ones that start expanding from a node. There was an edge case where no valid plan could be constructed, as all constructed plans would start expanding from an edge without edge indices in place. #2543
  • Fixed the incorrect management of the delta counter metric after the abort. SHOW STORAGE INFO under unreleased_delta_objects should be better now. #2544
  • Fixed the case when the database would crash without any valid query plan generated for a given query. Instead of the crash, the database will throw the QueryException. #2537 and #2535
  • Fixed issue with list pattern pattern comprehension under arbitrary expression. List pattern comprehension is only allowed under WITH and RETURN clauses. #2534
  • Fixed a bug under after-commit triggers where the database accessor becomes invalid after the transaction finishes. Before the fix, Memgraph would crash if the trigger used the access to access the changed entities under the graph. #2536
  • Fixed the case when recovery and promotion are executed concurrently on a replica. The promotion request will wait for recovery to finish before preparing storage for the new epoch. #2521
  • Fixed how metrics keyword was added to the grammar. The keyword couldn’t be used as a variable name. #2502

MAGE v1.22.1 - Dec 22, 2024

  • The MAGE version was only bumped because there is a new version of Memgraph (v2.22.1). Nothing changed under the MAGE itself.

Memgraph v2.22.0 - Nov 27, 2024

⚠️ Breaking changes

  • --experimental-enabled=high-availability does not exist anymore. If you used the feature, please remove the experimental flag because it’s no longer necessary. #2479
  • any(v IN [] WHERE v) was returning Null; since this release, it returns False. #2489
  • We improved global settings error messages (log to stderr and log level); this might be a breaking change if you rely on exact error message text. #2494

✨ New features

  • The first version of the vector search feature was added. To enable and configure the feature, use --experimental-enabled=vector-search and --experimental-config flags. Learn more under the vector search documentation page. #2406
  • The data snapshotting (point-in-time backups of the graphs) management has been improved. It’s possible now to use crontab syntax to specify when the snapshot will be created. #2435
  • Added IsEmpty function that accepts Null (IsEmpty(Null) returns Null), List, Map, String and returns Boolean value. #2489

🛠️ Improvements

  • High-availability automatic failover became the stable feature 🎉 --experimental-enabled=high-availability flag is not required anymore. Please visit high-availability page to learn more about the feature. #2479
  • The planner now utilizes the point index for point.withinbbox queries and makes point.distance queries using the index without the WITH statement. This improvement results in faster queries when using the mentioned spatial features. #2449

🐞 Bug fixes

  • Hiding passwords under logs wasn’t handled well in case of double quotes. That’s fixed now, so you don’t have to worry that the passwords will get exposed. #2488
  • Fix crashes (only in debug mode) when using point functions, for example, by providing x, y, z, and CRS for 2D points and vice versa. #2463

High-availability automatic failover updates

The code changes below improve the high-availability automatic failover, resulting in a more stable Memgraph runtime in that environment.

    • Properly handle failures in WAL replication. An interpreter will now throw an exception during commit instead of calling abort when the main becomes a replica with a write transaction to be committed. Furthermore, the replica instance won’t crash if it receives an existing vertex. [#2467]
    • The system will now correctly handle situations where the main gets re-elected as main again. [#2472]
    • The SHOW INSTANCES query will now run correctly when the leader becomes a follower. [#2474]
    • Fix that will not allow a sync replica to be READY while being behind by aligning the recovery timestamp check with timestamp modifications. [#2476]
    • When a main instance misses a failover and is selected to be the new main, Raft generates a new UUID. Previously, replicas wouldn’t update their durability, and MAIN wouldn’t update its clients. Now, when swapping UUIDs, durability and active clients are updated correctly. [#2478]
    • Users must set --coordinator-hostname when starting a coordinator in HA. Previously, the database would crash; now, it logs an error message. [#2482]
    • Instance-level clients can now safely be closed after committing. Previously, a promotion request executed in parallel with committing could cause data instance locking. [#2485]

MAGE v1.22.0 - Nov 27, 2024

🐞 Bug fixes

  • Link prediction, node classification and text modules are available again. #528
  • The built-in authentication module dependencies are now pre-installed also under MAGE Docker images. This mainly refers to the built-in SSO modules that depend on third-party libraries to offer a secure way of authenticating into Memgraph instances. #526

Lab v2.19.1 - Nov 27, 2024

🐞 Bug fixes

  • Resolved an issue where username and password inputs were not displayed correctly on the login screen in the Desktop app when authentication was required.

Lab v2.19.0 - Nov 27, 2024

✨ New features

  • The Lab web application can now be started on a custom base path using the environment variable BASE_PATH, which is useful for reverse proxy configurations.

🛠️ Improvements

  • In multi-tenant environments, a search bar is added to filter databases by name.
  • You can now view the complete Memgraph URI and Memgraph version by clicking on the connection in the top left corner.

🐞 Bug fixes

  • Fixed an issue where logs failed to disconnect from the previous Memgraph connection in the Desktop app.
  • The authentication screen for entering a username and password when connecting to Neo4j now displays correctly.

Previous releases

Memgraph v2.21.0 - Nov 6, 2024

Upgrading to Memgraph v2.21.0 breaking change

Coordinator log store directory in --data-directory needs to be started from scratch since new type of Raft log is added and some old ones were deleted. Memgraph could crash without deleting old logs from log store directory.

New features and improvements

  • Added planner optimization to replace point.distance filter with an index scan. Queries like WITH point({x:0,y:0}) AS a MATCH (m:L1) WHERE point.distance(m.prop, a) < 1 RETURN m;, should run faster if there is the point index created. If you are dealing with spatial data, there is a high chance you need such indexes to run your queries faster. #2362
  • Significantly improved schema retrieval performance in both TRANSACTIONAL and ANALYTICAL setups. Feel free to use --schema-info-enabled=True to get schema instantly by running the SHOW SCHEMA INFO; query. #2383
  • Added query metadata when logging incoming query. It’s possible now, e.g., to filter certain database log entries or search for specific items in the log. #2404

Bug fixes

  • Closing instance would crash due to streams and/or TTL running in the background. #2361
  • Add backticks around property keys in any {key: value} patterns. #2371
  • When replica gets promoted to main upon failover, it will use correctly incremented durable timestamp. #2366
  • schema.assert will throw an exception if ran inside the explicit transaction. #2352
  • Modifying mgp::memory is prohibited; use MemoryDispatcherGuard instead. Under C++ query modules, if module tries to set mgp::memory there will be a compilation error. Usually at the beginning of the mgp_init_module implementation there should be the mgp::MemoryDispatcherGuard guard(memory);. Usage examples could be found under MAGE C++ modules. #2424
  • Fixed incorrect usage of cv and stop token in scheduler and thread pool. #2452
  • Fixed unreleased deltas counter. There was a missing case of tracking when deltas were actually released. This gave the appearance in SHOW STORAGE INFO; that we were not actually releasing them. #2446
  • Fixed edge index not removing deleted edges. Edge index would not remove deleted (obsolete) entries, while the GC would delete the edge object. Edge type index was impacted, while the property type would detect that the object was deleted due to it checking the property. #2439
  • Removed usage of RTLD_DEEPBIND under query modules. Query modules, especially the Python ones should work better in terms of correct module loading. #2347

High-availability automatic failover improvements

There are a lot of efforts to make Memgraph HA rock-solid in the production environments. Under this release, the feature is still experimental, but getting very close to put the stable flag next to it. The full list if issues and improvements can be found HERE (GH issues labeled with jepsen).

  • All data instances now use one type of callbacks to simplify state reconciliation. #2421
  • Incomplete storage reset when MAIN force reset or applied snapshots to REPLICA. #2422
  • Coordinators now use one type of Raft logs to remove the need for distributed locks. Coordinator log store needs to be started from scratch, hence this change is a breaking one. #2430
  • Fixed deadlock when demoting data instance. When a coordinator sends a request for promotion or demotion, the lock on replication state is taken so that it cannot be interleaved with commit. If main became a replica and was executing write transaction, the transaction will be aborted. Scheduler is now stopped before thread pool in RPC client. #2447

MAGE v1.21.0 - Nov 6, 2024

New features and improvements

  • Added Leiden algorithm. The implementation is “static” in a sense that it’s operating on the whole graph. Leiden is a modern community detection algorithm that in Memgraph’s implementation provides hierarchies of communities. A big use-cases for Leiden community detection is GraphRAG. #508

Lab v2.18.2 - Nov 7, 2024

Bug fixes

  • You can now edit or remove connections with long names that previously overrode the edit/remove action.
  • Fixed issue where disk usage in the status bar showed memory usage instead (bug introduced in 2.18.0).
  • Removed the “Danger Zone” from the overview.

Lab v2.18.1 - Nov 6, 2024

Bug fixes

  • Resolved error with newer Ollama models causing “Cannot read properties of undefined (reading ‘match’)” when using the GraphChat feature.

Lab v2.18.0 - Nov 6, 2024

New features and improvements

  • Enable HTTPS in Lab without needing a reverse proxy, using self-signed or custom certificates with environment variables SSL_IS_ENABLED, SSL_CERT_PATH and SSL_KEY_PATH.
  • Logs in the Lab no longer show system Cypher calls with Memgraph version 2.21 or above.

Bug fixes

  • SSO redirect for Lab when configured with HTTPS works as expected now.

Memgraph v2.20.1 - Oct 10, 2024

Bug fixes

  • When a replica gets promoted to main upon failover, it will now use correctly incremented durable timestamp. #2366
  • Replica will now take MAIN’s uuid only when REPLICA’s current sequence number is 0. #2388
  • Eliminated deadlock caused by concurrent calls to Stop method on the Scheduler. Eliminated deadlock caused by calling Pause after Stop from different threads. #2398
  • Fixed a problem where EdgeType index would assign every element as obsolete which then caused the index to be incorrectly emptied by the GC. Fixed another problem where EdgeTypeProperty index never ran its GC. Now properly prevents edge index creation when properties-on-edges is disabled - the user must explicitly provide —storage-properties-on-edges. Now correctly prevents Edge indices being recovered when properties-on-edges is disabled by causing an assert during recovery. Replication now updates edge indices. #2390
  • Replica now correctly reflects database registration success or failure. When replica receives a request for registering replica, it will now return status code NOT_MAIN. If attempting to undo an incomplete registration fails, then the Memgraph instance will be intentionally crashed because the system is in unrecoverable state. Main instance can now deal with stale RPC message GetReplicaUUID without crashing the instance. #2373
  • Closing instance no longer crashes due to streams and/or TTL running in the background. #2361

Lab v2.17.0 - Sep 25, 2024

New features and improvements

  • A monitoring dashboard is available, offering enhanced insights into the state of your data and potential optimization opportunities for your Memgraph Enterprise instance.
  • Choose a custom model for the OpenAI GraphChat integration instead of being limited to the default gpt-4.
  • GraphChat is more consistent with its responses due to a change in the LLM temperature setting from 0.7 to 0.01.
  • GraphChat will attempt to correct invalid Cypher queries up to three times, ensuring more reliable query generation.
  • Graph schema generation is now almost instant when the Memgraph configuration parameter schema-info-enabled is set to true.

Bug fixes

  • Drag-and-drop sorting of query collections now maintains the correct order as expected.
  • User permissions, status bar stats, and replication status are now aligned. Instead of breaking the connection due to permission issues, users will now see “N/A” where applicable.

Memgraph v2.20.0 - Sep 25, 2024

Upgrading to Memgraph v2.20.0 breaking change

In this version of Memgraph, we have removed the experimental classification for system replication. Going forward, the --experimental-enabled configuration flag no longer recognizes the system-replication argument which was introduced in v2.15. System replication is now a fully supported Enterprise-licensed feature.

New features and improvements

  • [Enterprise] Graduated replication to “production” from “experimental”. #2295
  • Up to date schema tracking, available for In Memory Transactional and In Memory Analytical. #2256
  • New index on geospatial datatype. #2298
  • Added SASL2 support for Memgraph with Kafka streaming. #2305
  • Query planner now leverages edge type indices and edge-property indices. #2293
  • New session trace feature for fine grained inspection of internal engine events. #2276
  • New type constraint feature. #2289

Bug fixes

  • Reverted a performance regression related to logging. #2316
  • No longer skips post_update callback when recovering flag value data from durability module. #2274
  • Now correctly cleans any edge indices during abort. #2310
  • No longer adds entries to the wrong label+property index. #2294
  • Remove deadlock during streaming database destruction. #2288
  • Fix IPv6 endpoint version resolution. #2281
  • Fix failover recovery when missing WAL or invalid state machine. #2241
  • Cartesian to Indexed Join was happening only for property filters. #2343
  • Closed several defects in replication system. #2283
  • Altered “become leader” callback HA logic to always do check of whole cluster to avoid data loss. #2248

Memgraph v2.19.0 - Aug 14, 2024

Breaking changes

  • Fixed an issue where LocalDateTime did not convert user date to UTC properly. LocalDateTime now considers the set database timezone for conversions. A new command-line argument and database setting for timezone have been added, allowing users to define the database timezone for accurate LocalDateTime conversions. #2204

  • The --data-recovery-on-startup flag is now set to true by default. This ensures that all user data will be recovered on startup without needing to specify any configuration options. #2178

New features and improvements

  • [Enterprise Ed.] Added functionality to hide sensitive information, specifically passwords, in query logs. Passwords in queries are now masked with asterisks (*). #2140

  • Introduced the SHOW ACTIVE USERS INFO command, which allows users to view a list of active users along with detailed session information. #2183

  • Added support for periodic commits within Cypher queries, allowing for batched execution. This enhancement prevents memory exhaustion by committing intermediate results during the execution of large queries. #2182 #2194 #2196 #2197 #2217

  • Added the Time-to-Live (TTL) feature, enabling users to tag nodes with an expiration time. A background thread automatically deletes these nodes and their associated edges once they expire. #2167

  • Users can now define their passwords directly using a hash, allowing for more secure authentication methods. #2148

  • Added property compression across the graph using the zlib compression library. This feature introduces new configuration flags --storage-property-store-compression-enabled and --storage-property-store-compression-level, allowing users to enable compression and set the desired compression level. #2102

Bug fixes

  • Fixed an issue where SHOW REPLICAS was returning an empty map for data_info in the Community Edition due to an incorrect database name check. #2236

  • Optimized the deletion process for nodes and edges by deferring the removal of obsolete index entries to the garbage collector (GC). This change improves deletion performance by reclaiming memory after the GC cycle instead of immediately. #2242

  • Fixed an issue where coordinators did not yield leadership according to the leadership_expiry_ flag. The leadership expiry is now correctly respected, preventing the use of heart_beat_interval_*raft_server::raft_limits_.response_limit_ as the expiry limit for nodes deemed unhealthy. #2224

  • Leadership now expires as it was intended, before the election period starts. #2224

  • Fixed a bug where no default database was selected when MG_ENTERPRISE=OFF. #2267

  • Fixed the endpoint for session closure by a peer and ensured it is correctly reflected in the audit logs. #2181

  • Incorrect cache of query plan resulted in an incorrect sharing of resources for some call procedures, which in rare cases could cause segfault. Regression was introduced in v2.18.1. #2268

MAGE v1.19 - Aug 14, 2024

Bug fixes

  • Node2Vec now requires either hs set to 1 or negative set to a positive integer instead of a non-negative integer due to bumping Gensim version. #502

Lab v2.16.0 - Aug 14, 2024

New features and improvements

  • Select different connection types: standalone Memgraph, Memgraph in replication mode, and Memgraph in HA cluster mode.
  • Connect to the Memgraph HA cluster and see the cluster status of your coordinators and data instances in real-time.
  • Connect to the Memgraph main instance in replicated mode and see the replication status in real-time.
  • Connect directly to the Coordinator to run cluster management queries.
  • Configure optional proxy endpoint for the OpenAI model in the GraphChat.
  • Choose a custom model for the Ollama GraphChat integration instead of the default model llama2.
  • Graph results on retina displays have 15% faster rendering with better display quality.
  • For empty or invalid Graph Style Script you will receive a warning message instead of empty graph results.
  • Clearing a database before loading a predefined dataset will use less memory now because it removes data in batches.
  • Clearing a database before loading a predefined dataset will remove triggers too along with nodes, relationships, indexes and constraints.
  • Set environment variable LOG_STACKTRACE_IS_ENABLED to true to see the stack trace for the error logs.

Bug fixes

  • Display graph options are now applied correctly if you pick a color/text before choosing the option “This node” or “All nodes with the same label”.

Memgraph v2.18.1 - Jul 23, 2024

Breaking changes

  • Introduced management servers on coordinators to get the health state of the cluster. Each coordinator now has a management server and client connection to all other coordinators. This allows follower coordinators to correctly report health states by contacting the leader coordinator. #2138

New features and improvements

  • Added current amount of unreleased delta objects to the SHOW STORAGE INFO query. #2066

  • Added a new query, SHOW METRICS INFO, which exposes the same metrics available from the HTTP endpoint, now accessible via a query. #2052

Bug fixes

  • Fixed an issue with the wrong handling of NuRaft config logs in HA durability, where the logs were parsed from RocksDB as text although they are serialized in NuRaft binary format. #2189

  • Fixed edge type property index lookup scan. The edge type property index scan now correctly fills vertices in the frame, preventing queries that construct a path based on edge type property index from returning nulls. The edge type property index scan is disabled for more complex queries, defaulting to ScanAll instead. #2190

  • Controlled delta allocations to improve memory management in IN_MEMORY_TRANSACTIONAL mode. Deltas now use a dedicated PMR allocator for property values and other delta allocations, allowing for quick and trivial destruction of deltas post-query. This change aligns resident memory with expectations for IN_MEMORY_ANALYTICAL, which never allocates deltas. #2151

  • In HA, the election timeout is now set between 2000ms and 4000ms, with the heartbeat interval occurring every second. These values are chosen to tolerate occasional network hiccups without triggering unnecessary leadership changes. #2207

  • C and C++ query modules are a lot faster now and no longer slow down when ran concurrently. #2176

  • Correctly handle memory limits when triggered by allocations in third-party code. #2191

  • Fixed the enums dump function to correctly print all enum values. #2168

  • Correction for propertySize function when enums are inside Lists/Maps. The internal reader now reads the correct number of bytes, preventing issues where the reader was positioned incorrectly. #2205

Memgraph v2.18.0 - Jul 3, 2024

Upgrading to Memgraph v2.18.0

If you are upgrading to Memgraph v2.18.0 from any previous versions and you have a persistent configuration file (docker volumes or native install) due to the breaking changes in the configuration file you need to set manually --data-recovery-on-startup=true to restore data on startup.

If you do not set --data-recovery-on-startup=true, Memgraph will start without data recovery and your data (snapshots at var/lib/memgraph/snapshots) will be overwritten by the newly created periodical snapshots, potentially causing data loss, depending on the configurations of snapshot creation.

If you think you have experienced data loss and added --data-recovery-on-startup=true, stopping Memgraph creates a new snapshot by default, and starting Memgraph will restore the data from the last snapshot, there is a possibility that the snapshot with data is still present in the var/lib/memgraph/snapshots folder, depending on how long Memgraph was running and how many times it was restarted.

To prevent data loss in all cases, before upgrading to Memgraph v2.18.0, create a backup of your data directory (var/lib/memgraph).

Breaking changes

  • Configuration flag --coordinator-hostname is added, which is used to fix the issue of having 0.0.0.0 in the output of SHOW INSTANCES on the first leader. The flag has its environment variable equivalent in MEMGRAPH_COORDINATOR_HOSTNAME. Now all coordinator instances need to provide a configuration option for the coordinator hostname. For local deployment, use localhost. For containerized deployments, use the name of the container. This change is breaking because coordinators cannot be started if this configuration option isn’t set. #2131

  • The Coordinator’s durability has been reinforced through enhanced storage of RAFT’s logs and snapshots, now persistently stored in the coordinator/raft_data/logs folder. The coordinator configuration is securely maintained in the coordinator/raft_data/network folder, which is kept constantly durable. A new flag, --ha-durability, allows for optional deactivation of this log and snapshot durability if required. #2029

  • Removed deprecated command-line flags to streamline configuration and improve system performance. The following flags are no longer supported: --storage-recover-on-startup, --auth-module-create-missing-user, --auth-module-create-missing-role, --auth-module-manage-roles, --storage-parallel-index-recovery. #1916

New features and improvements

  • Implemented lazy evaluation of replication DNS. When using DNS in replication, its resolution is postponed until streaming data using RPC connections, improving efficiency in replication setups. The replication durability version has been bumped to V4, and the corresponding migration function has been added. #2060

  • SHOW INSTANCES now returns non-resolved IP addresses when using DNS in an HA cluster. DNS is resolved every time data is streamed using RPC connections, ensuring seamless reconnections in Kubernetes clusters even if a Pod is restarted. The IPFamily attribute is no longer persisted as part of the Endpoint class. #2051

  • A new flag, --nuraft-log-file, has been added to explicitly manage logs coming from NuRaft. #2084

  • Coordinator won’t start if the --instance-down-timeout-sec option is smaller than the --instance-health-check-frequency-sec option, ensuring that configuration options for health pings are valid before starting the Memgraph coordinator instance. #2100

  • Validation added for the experimental-enabled flag. Users can now view logs detailing which experimental features are enabled. #2106

  • In addition to specifying log file paths via the --nuraft-log-file flag, users can now set the MEMGRAPH_NURAFT_LOG_FILE environment variable to control the location of NuRaft logs. #2113

  • Users can now see who is the leader and who are the followers in the output of SHOW INSTANCES. This enhancement provides clearer visibility into the roles of instances within a high-availability cluster. #2126

  • Memgraph now supports Single Sign-On (SSO) modules. This feature allows for custom authentication schemes, enabling users to log in using user-defined authentication modules. Upon receiving a Bolt message for authorization, Memgraph will utilize the specified auth module for the login process. The --auth-module-executable flag has been deprecated and replaced by --auth-module-mappings=basic. #1990

  • Users can now connect to Memgraph without specifying a database. If a user has a default database, they will connect to that database. If not, they will connect without a database defined, allowing only database-less queries. Users can also define the database via the client, executing each query against the specified database. Multi-tenant authentication will be executed upon the first query execution. #1884

  • Improved query optimization by unifying multiple property-based filters into a single filter that applies both upper and lower bounds. #2055

  • Introduced the USING HOPS LIMIT x syntax, enabling users to limit the number of hops (edges crossed) during graph traversals. This enhancement helps in measuring and controlling the amount of work done in the traversal. This feature covers traversals in the case of BFS, DFS and simple expand. #1928

  • Peak memory usage during the entire Memgraph run is now recorded and available in SHOW STORAGE INFO and the metrics server. This allows users to monitor memory usage more effectively and helps in optimizing performance. #2048

  • Memgraph now supports an external module that enables Single Sign-On (SSO) using the SAML protocol. This module validates SAML responses and supports identity providers such as Microsoft Entra ID and Okta. #2049

  • Added support for Single Sign-On (SSO) using OIDC and OAuth2.0 protocol. #2045

  • The support for the Enum datatype has been added. Enums can be used to enhance query performance and reduce memory usage compared to string representations. #2039

  • Add support for edge type property index. #1964

  • Added functionality that allows each user to change their own password. #2097

  • Removed support for Amazon Linux 2, CentOS 7 and Red Hat 7 Linux distributions. #2165

Bug fixes

  • Metrics can now be fetched via the HTTP server during runtime if a Memgraph Enterprise license is enabled. #2067

  • Removed redundant duplicate label filtering. #2114

  • Fixed an issue where filters following a Cartesian operation were not always correctly embedded into index scans, causing some query plans to miss a Cartesian-to-Join swap. #1924

  • Resolved an issue where constants were incorrectly used as grouping keys in aggregation queries. #2095

  • Resolved an issue where the routing table request logic inaccurately identified the MAIN instance when the previous MAIN was not operational. #2133

  • Fixed an issue where the HA cluster would deadlock if an instance was down when registered and it was the only instance in the cluster. #2135

  • This fix addresses a replication bug that previously prevented data and metadata deltas from being in the same transaction. Metadata deltas are now sent first to ensure the replica uses unique access, making automatic index creation fully compatible with high availability and replication capabilities. #2125

MAGE v1.18 - Jul 3, 2024

New features and improvements

  • Added a PostgreSQL migration module to MAGE that enables direct migration from a PostgreSQL database to Memgraph. This new module streamlines the data import process by reducing the need for intermediate steps, such as using CSV files. Users can now migrate tables, including nodes and relationships, directly into Memgraph. #464

Bug fixes

  • Fixed building of newly created Rust query modules. Previously, there was a logical error in the code that prevented new Rust query modules from being built correctly. #483

Lab v2.15.0 - Jul 3, 2024

New features and improvements

  • Share a query with other users with access to the same Lab and Memgraph. Works only on Lab in Docker and with enterprise license.
  • You can configure quick-connect to connect to Memgraph with an encrypted connection with the new environment variable QUICK_CONNECT_MG_IS_ENCRYPTED.
  • The size of the Lab Docker image has been reduced to one-fifth of its original size.

Bug fixes

  • Boolean false value is now shown correctly in the expanded row of query table results.
  • Passwords are now hidden in the run history when running a query to create a new user with a password or change the user’s password.

Lab v2.14.0 - May 23, 2024

New features and improvements

  • Add SSO (single sign-on) configuration for Microsoft Entra ID and/or Okta with SAML and/or OAuth standard protocols (client only).
  • Run a query from a query collection in any of the vertical and/or horizontal views with a selection dropdown next to the “Run query” button.
  • For each query, query performance details will be in the query summary on how much time was spent on each part of your query: plan, parsing, execution and full roundtrip.
  • ZonedDateTime data type will be presented with timezone information in the query data results table.

Bug fixes

  • A bug where you would be locked in the fullscreen mode after CSV import usage has been fixed.

Memgraph v2.17.0 - May 22, 2024

Breaking changes

  • The flag --replication-restore-state-on-startup is now set to true by default. #2031

  • Memgraph will now fail to start if the Bolt server cannot be created, ensuring a dedicated port is available. Failures in creating the WebSocket and HTTP servers will no longer crash Memgraph but will be logged more effectively. If the WebSocket server fails, the LoggerSink will not be added to it. Additionally, Memgraph will crash if the authentication folder cannot be created. #2017

New features and improvements

  • Added functionality to create a user or role only if it does not already exist. This update prevents errors when creating a user or role that already exists. #2032

  • Introduced Docker images specifically tailored for debugging, with Memgraph built in the RelWithDebInfo mode. These containers come equipped with essential debugging tools such as perf, gdb, and pgrep, along with other useful apt packages. #2047

  • Added the capability to count the number of hops in queries for each expansion. Each unit of work, including filtering on edge types, edge properties, or visiting already processed nodes, is counted as a hop. The total number of hops is returned in the number_of_hops field in the query summary. #1935

  • Introduced a new small vector datatype (16B) with a small buffer optimization. This new datatype is used for Vertex to have smaller labels collection and smaller edge collections, resulting in a 24B reduction per Vertex. #1970

Bug fixes

  • Data instances now use 0.0.0.0:replication_port for creating the replication server instead of the instance’s IP address. This update ensures that the replication server starts correctly. #2038

  • The replication stream is now handled as a local variable for transactions, preventing assertion failures during recovery. #2018

  • Implemented changes to discard leadership requests on follower instances. This update ensures that followers no longer accept user actions intended for the leader. #1932

  • Fixed a NuRaft launcher race condition. The raft server is now considered successfully created once it behaves as a leader. #2040

Memgraph v2.16.1 - May 15, 2024

Breaking changes

  • Replicate only durable commits to replicas during recovery. This ensures that during the recovery process, replicas only receive commits that have been fsynced on the main node, preventing the replication of non-durable data and improving overall system consistency. #1991

New features and improvements

  • Added exponential backoff to the coordinator force reset function. This improvement helps reduce pressure on logs and allows time for machines to come back online by implementing a backoff strategy that starts at 1 second and increases to 5 seconds, followed by resets every 5 seconds. #1996

  • Upgraded the Clojure client dependencies. Memgraph now uses gorillabs/neo4j-clj version 5.0.0 for Jepsen testing, Clojure version 1.11.2, and neo4j-harness version 5.10.0. #1987

  • Added timezone support to Memgraph with the new zoned datetime type. This feature allows you to represent points in time with a defined timezone, enabling you to work with temporal data from different locales and easily migrate datasets with zoned values. #1866 #1976

  • Added last_succ_resp_ms and coordinator health status to the output of the SHOW INSTANCES command. This update allows users to see the elapsed time in milliseconds since the last successful response from instances to the leader’s health ping, as well as the health status of the coordinator. #1985

  • Added environment variables for HA Kubernetes cluster setup. This update allows starting the coordinator and data instances using environment variables, enhancing flexibility and ease of configuration for high availability clusters in Kubernetes environments. #1951

  • Added an option to register a replica after the main instance has already been registered in a high availability (HA) setup. This feature enhances the flexibility of replica management in HA configurations. #1911

  • Improved the output of the SHOW INSTANCES command. Changes include renaming raft_socket_addr to coord_server and coordinator_socket_addr to mgmt_server, and adding the Bolt server to the output. #1965

Bug fixes

  • Resolved an issue in the automatic index creation process where transactions creating multiple entities simultaneously could lead to unexpected behaviors. This patch ensures reliable auto index creation when dealing with multiple entity creations in a single transaction. #1926

  • This fix ensures robust index rewriting and prevents potential core dumps in situations involving pattern comprehension within queries. Previously, the application could fail when using label or property-label indices with pattern comprehensions. #1968

  • Addressed a flaw where skipped timestamps were not finalized on replicas, leading to inaccuracies in the oldest active timestamp information provided to the GC. This fix ensures all skipped timestamps are now marked as finalized, allowing the GC to accurately manage memory and clear Deltas as needed. Additionally, the RPC session buffer now resets to a maximum of 4 MiB post-session execution, improving memory management. #2003

  • Fixed the DNS resolution capability for endpoint parsing. This update resolves issues with DNS resolution when registering replicas and/or coordinator instances. #2004

  • Expose coordinator’s internal functionality to manage the cluster. Users can now execute actions such as DEMOTE INSTANCE and FORCE RESET CLUSTER STATE, which were previously internal operations. These functionalities allow users to reset cluster state and promote their chosen instance to be the MAIN. #1981

Memgraph v2.16.0 - Apr 10, 2024

New features and improvements

  • Added a new command, DROP GRAPH, that deletes data in the database in an efficient manner. #1723
  • Fixed a bug that caused the incorrect coordinator to become the leader due to missing cluster state data. #1897
  • Added support for edge type indices to optimize query performance on graphs. #1542
  • Added automatic index creation for node labels and edge types. Two new configuration flags control this feature for labels and edge-types automatically encountered by the database. #1841
  • Added support for bolt+routing when connecting to a cluster of Memgraph instances. #1796
  • Expanded the min() and max() functions to support temporal types, improving date and time manipulation capabilities. #1790
  • Renamed HA flags --raft-server-id to --coordinator-id, --raft-server-port to --coordinator-port, --coordinator-server-port to --management-port to improve cluster setup. #1820
    • Reduced the size of the Delta from 80B to 56B #1747
  • Extended the C/C++ API to support query execution. #1773
  • Updated queries used for registering replication instances and coordinator instances. #1809
  • Introduced the lock on operations such as SETTING INSTANCE to MAIN, REGISTER INSTANCE, UNREGISTER INSTANCE, and FAILOVER for better control of the cluster state. #1819
  • When doing failover, the Coordinator chooses a new MAIN by comparing which memgraph database is up-to-date. #1729
  • Changing instance’s replication role is now backed by Raft. #1728
  • If REPLICA diverges from MAIN, MAIN will automatically initiate a forced data reset on REPLICA. #1777
  • User can create, set, or remove labels using property values. #1762
  • Introduced the ability to fetch edges based on edge ID. #1808
  • Added support for pattern comprehensions when used in WITH and RETURN clauses. #1827 #1874 #1903
  • Introduced a force reset feature to revert the cluster to its pre-operation state in case of failure. #1836

Bug fixes

  • Added an early exit when doing OR filter expressions if the first expression evaluates to true. #1738
  • Configuration settings are now properly verified to ensure that periodic snapshots are only taken when appropriate. #1835
  • Improved replication stability in high-availability (HA) clusters to handle situations where the REPLICA node is several epochs or commits behind the MAIN node. #1743
  • Fixed a bug that could occur when shutting down the Raft server. Initializing Memgraph enterprise instance without specifying any flag used in high-availability is now allowed. #1823
  • Query allocations now use a single allocation subsystem rather than two. Memory no longer horded by bolt workers. #1801
  • The schema.node_type_properties() and schema.rel_type_properties() functions now work as equivalents to Neo4j’s functions. #1718
  • Merging node or edge with null property now raises an error. #1810
  • When adding coordinators in cluster, action will fully succeed or fail before coordinators returns result from query. #1792
  • Fixed a bug responsible for the incorrect edge count when a graph was dropped using DROP GRAPH. Now, accurate edge counts are displayed in the SHOW STORAGE INFO output. #1921

MAGE v1.16 - Apr 10, 2024

New features and improvements

Bug fixes

  • Periodic and do modules now work with the Memgraph API without the need for a user to authenticate #461

Lab v2.13.0 - Apr 10, 2024

New features and improvements

  • Select a color for your connections, enhancing distinction within the Lab web interface.
  • Use precise CSV imports by defining custom line filters, and processing specific file lines based on user-defined conditions.
  • Filter datasets by category such as “Knowledge Graphs”, “Supply Chain”, and others.
  • Run the Cypher query from the query parameters tab without switching back to the Cypher query tab in the query editor.
  • Enhanced CSV import now provides extensive notices, best practices and warnings tailored to the CSV import process and specific data types such as dates and date times, aiding you in smoother data handling.

Bug fixes

  • Queries in a collection from a European backpacking dataset now return a correct response.
  • Running a query in a horizontal view now works as expected.
  • A bug introduced in v2.12.0 with failed key encryption when adding OpenAI and Azure OpenAI keys is fixed now.

Memgraph v2.15.2 - Apr 6, 2024

Bug fixes

Memgraph v2.15.1 - Mar 29, 2024

New features and improvements

Bug fixes

  • Resolved an issue where snapshot and GC operations would block the initiation of new transactions. #1759

  • Reading/writing snapshots on coordinators now works as expected. #1788

Lab v2.12.2 - Mar 8, 2024

Bug fixes

  • Expand, collapse and hide actions on nodes are working as expected, as opposed to the bug experienced in v2.12.x.

Lab v2.12.1 - Mar 1, 2024

Bug fixes

  • An error message for empty and invalid GSS is only shown on results graph view.

Lab v2.12.0 - Feb 28, 2024

New features and improvements

  • Change the color of nodes and edges in the graph view using the color picker.
  • Change the nodes and edges label shown in the graph view to any of the following: labels, property values or none.
  • Along with OpenAI, you can now setup remote Azure OpenAI or local Ollama LLM models for your GraphChat.
  • Fine-tune permissions of the GraphChat to run only read, create, update and/or delete Cypher commands.
  • A quick link to GraphChat settings is now in the upper right corner of GraphChat conversation.
  • The query request limit is increased from 100kB to 20MB to enable you to run a lot more queries at once from the query execution editor.

Bug fixes

  • Query execution editor loads the previous state when opened again, as opposed to the empty state bug experienced in v2.11.1.
  • You can now select a property type for source and target nodes when creating edges via CSV import.
  • Unselected CSV column in CSV import will not result in CSV error anymore.
  • Current database in a multi-tenancy environment is shown correctly for Memgraph version >= 2.15.

Memgraph v2.15.0 - Feb 28, 2024

Upgrading to Memgraph v2.15.0

Starting from Memgraph version 2.15.0, password hashing has been fortified with salt for improved security. Previously, passwords were hashed using SHA256 without salt. Please note that bcrypt, which is the default hashing algorithm, has always incorporated salt for enhanced security.

  • Automatic Migration: Passwords hashed without salt will be automatically reverted to the saltless algorithm upon upgrade. Subsequent successful logins trigger a rehashing process with salt, updating the data on disk.
  • Seamless Transition: Most users will experience a seamless transition without any manual intervention. A user’s first login post-upgrade triggers the hash update.
  • Migration Considerations: Upon starting Memgraph version 2.15.0 for the first time, ensure that the --password-encryption-algorithm flag is correctly set to match the actual hashing algorithm used. This is crucial for maintaining authentication data integrity.

New features and improvements

  • Enhanced security by integrating a password hashing algorithm into authentication durability mechanisms, alongside existing password hashes. Passwords hashed with SHA-256 will be rehashed with salt upon validation for improved security. #1644

  • Introduced a function propertySize to calculate the size of properties (in bytes) within Memgraph storage. For more details, refer to the Functions documentation. #1557

  • The process of demoting old MAIN to REPLICA should eventually succeed fully without any issues. #1711

  • The coordinator now aligns REPLICA to consistently listen to the correct MAIN. #1711

  • Improved memory handling of Deltas. The value for Deltas is changed from 104B to 80B. For more details, refer to the Storage memory usage documentation. #1688

  • Added support for query parameters in LOAD CSV. This enhancement allows users to dynamically specify file paths in the LOAD CSV clause. Executing queries like LOAD CSV FROM $file AS row CREATE (:Node { column: row[0] }); is now possible, where $file is a variable representing a valid path to a CSV file. For more details, refer to the Expressions documentation. #1653

  • Added support for query parameters in RETURN LIMIT. Users can now specify the limit in a RETURN statement through a parameter, such as MATCH (n) RETURN n LIMIT $limit;. This addition makes it easier to dynamically adjust the number of results returned by a query. For more details, refer to the Expressions documentation. #1654

  • [Enterprise Ed.] Introduced an experimental feature flag for system replication (--experimental-enabled=system-replication). This new flag enables both authentication and multi-tenancy replication.

  • Introduced enhancements for multi-tenancy support. The new SHOW DATABASE; command reveals the currently used database, returning NULL if none is active. SHOW DATABASES; has been updated to display only the existing set of multitenant databases. For more details, refer to the Multi-tenancy documentation. #1550

  • When using replication, flag --replication-restore-state-on-startup needs to be set to true. For more details, refer to the Configuration settings documentation. #1707

  • REPLICAs are now configured to listen exclusively to a single MAIN instance. In high availability (HA) setups, the coordinator now manages the assignment of REPLICA instances. For configurations using replication without HA, the MAIN instance directly communicates its ID to each REPLICA. For more details, refer to the High availability documentation. #1674

  • Added coordinator instance for managing HA cluster. For more details, refer to the High availability documentation. #1608

  • Added support for restart of replication instances. MAIN can restart as MAIN and as REPLICA depending on the cluster state in the moment of restart. REPLICA always stays REPLICA. For more details, refer to the High availability documentation. #1672

  • Added automatic failover from a single coordinator. For more details refer to High availability documentation. #1646

  • Added flags --raft-server-id and --raft-server-port for creating coordinators. For more details, refer to the High availability documentation. #1687

  • Improved the authentication module with better user and role handling mechanisms. For more details, refer to the Auth module documentation. Key enhancements include:

    • Elimination of automatic user creation by the auth module
      • Introduction of checks to determine the presence of users or the use of an auth module before proceeding
    • Support for roles with database access
    • The authenticate() function now returns a user or role
    • When an auth module is in use, no data is locally saved
    • AuthChecker now generates QueryUser (user or role), which is responsible for actual authorization checks
    • Deprecated the following configuration flags: --auth-module-create-missing-user, --auth-module-create-missing-role, --auth-module-manage-roles #1699
    • Introduced multi-tenancy and system information to SHOW REPLICAS. #1735

Bug fixes

  • Fixed an issue with the memory tracker not accurately counting memory usage after exceeding the memory limit. #1651

  • Resolved an issue that led to a crash when an unbound variable was used inside a subquery. #1710

  • Fixed deadlocks in jemalloc caused by the memory tracker. #1715

  • Fixed an issue in the Breadth-First Search (BFS) expansion process where the path was not correctly restored to its previous state after expansion, unless it was modified. The path is now appropriately shrunk and the state is restored to its prior condition only when changes have occurred. #1745

MAGE v1.15.0 - Feb 28, 2024

Bug fixes

  • Community detection now respects memory limits and doesn’t the crash database. #431

Lab v2.11.1 - Jan 22, 2024

New features and improvements

  • The flow of the query plan is now easily tracked thanks to the arrows that connect individual steps.

Bug fixes

  • Importing data from a new CYPHERL file format that contains queries for creating triggers now works as expected.
  • Importing a large CYPHERL file with more than 1M lines doesn’t crash the Lab anymore.

Memgraph v2.14.1 - Feb 16, 2024

Bug fixes

  • Fixed an issue with accumulated path evaluation affecting built-in algorithms:
    • Depth-first search (DFS)
    • Breadth-first search (BFS)
    • Weighted shortest path (WSP)
    • All shortest paths (ASP). #1642

Memgraph v2.14.0 - Jan 22, 2024

New features and improvements

Bug fixes

  • The --storage-mode configuration flag now works as expected. #1609

  • Memgraph returns an error instead of crashing when trying to execute the SHOW STORAGE INFO; query without the required permission. #1566

  • Memgraph returns an error instead of crashing when aborting a transaction due to lack of memory. #1589

  • REPLICA timestamp is now correctly propagated. #1615

  • Index hinting now works as expected. #1606

  • Using the path identifier from the CREATE clause in other parts of the query will no longer crash the database. For example, the following query will execute successfully:

    CREATE p0=()-[:T0]->()
    MERGE ({k:(size(p0))})
    RETURN 1;

    #1629

MAGE v1.14.0 - Jan 22, 2024

  • Internal improvements.

Lab v2.11.0 - Jan 3, 2024

New features and improvements

  • Now, you can import CSV files using the CSV import configuration tool instead of writing Cypher queries.
  • The query plan chart is now available in the Summary tab for each query run.
  • You can profile a query plan to enrich the query plan chart with the absolute and relative execution time spent on each query plan step.
  • The generated query plan can be downloaded in the JSON format.
  • LLM GraphChat now works even when connected to Neo4j.
  • Query data view will be shown by default if there are non-graph data in the query results.

Bug fixes

  • Hiding nodes in the Graph results view now works as expected.
  • Lists in the notifications are now shown with correct indentation.

MAGE v.1.13.0 - Dec 8 2023

Memgraph v2.13.0 - Dec 8, 2023

Upgrading to Memgraph v2.13.0

Existence and unique constraints can now also be recovered in parallel, just like indexes. That is why the storage-parallel-index-recovery configuration flag has been deprecated, and now you can enable this behavior using the storage-parallel-schema-recovery configuration flag.

New features and improvements

Bug fixes

  • If results of aggregation functions are returned grouped or if there is no input to aggregate over, rather than returing 0 or empty together with NULL, the functions won’t return anything. #1531
  • If the initialisation CYPHERL file passed using the --init-file configuration flag tries to create a user that already exists, the exception will be caught and Memgraph will start successfully. #1465
  • All deleted relationships are now correctly replicated to REPLICA instances. Also, replication failures no longer prevent MAIN to write into WAL files. #1540
  • The cartesian evaluation of three MATCH clauses no longer uses sequential scanning, thus improving the performance of such queries. #1555
  • A bug was fixed that would MATCH and RETURN wrong grouped aggregations. #1518
  • Memgraph no longer throws a “Failed deallocation” error when working with the migrate query module. #1492
  • The C, C++ and Python APIs have been extended with functions to check what storage mode is being used and whether graph elements (or lists/maps thereof) have been deleted. They allow the proper handling of deleted return values or query procedures and functions ran in the in-memory analytical storage mode are now properly handled.#1395
  • A bug was fixed where Memgraph would send a success message to clients before certain database operations were executed successfully. #1556
  • Correct exception type is now sent on failure of the BEGIN, COMMIT and ROLLBACK commands. #1560

Lab v2.10.0 - Dec 8, 2023

New features and improvements

  • OpenAI LLM integration enables you to query the database using the English language instead of writing Cypher queries.
  • After each query run, query summary, statistics, and database notifications are now shown in the result summary tab.

MAGE v1.12.1 - Nov 21, 2023

  • Changes to internal utilities. #415

Memgraph v2.12.1 - Nov 17, 2023

Upgrading to Memgraph v2.12.1

Cached query plans are no longer saved during the time interval defined by the --query-plan-cache-ttl, rather they are cached by count.

This means that you need to replace any custom setting of the --query-plan-cache-ttl with the --query-plan-cache-max-size configuration flag. By default, the maximum number of cached query plans is 1000.

This change has been made to reduce the memory usage of queries with MERGE queries and variables.

New features and improvements

  • Cached query plans are no longer saved during the time interval defined by the --query-plan-cache-ttl, rather they are cached by count. You can set the maximum number of cached query plans using the --query-plan-cache-max-size configuration flag. By default, the maximum number of cached query plans is 1000. This change has been made to reduce the memory usage of queries with MERGE queries and variables. #1348
  • Procedures are no longer limited to 100 MB. They can use unlimited resources. If you want to limit memory usage of procedures add PROCEDURE MEMORY LIMIT 100 KB after calling a procedure and before yielding results. #1506
  • The SHOW STORAGE INFO; query now returns the non-swapped physical RAM memory a task has used (as reported by the operating system) as memory_res, not memory_usage. memory allocated has been replaced with memory_tracked, and it still defines the amount of RAM allocated in the system and tracked by Memgraph. The query also returns the number of memory-mapped areas that the kernel allows a process to have as vm_max_map_count. #1408 #1426
  • Now you can delete all nodes and relationships on a path by using the following DETACH DELETE syntax: MATCH p = (:X)-->()-->()-->() DETACH DELETE p;. #1383
  • After recovery, the logs show which indexes and constraints have been recovered. #1480
  • Information about using custom memory resources for handling memory when running has been removed from the logs as it’s unnecessary. #1452
  • All the memory allocated inside a procedure is tracked in order to notify when limits are reached. #1443
  • date and localTime can now be extracted from LocalDateTime data type. #1381

Bug fixes

  • Query modules schema and convert that had been moved from MAGE library to Memgraph now load properly and work as expected. #1490
  • Instead of crashing the database, using the exists() function with any clause other than WHERE throws an exception. #1392 #1382
  • The MEMORY QUERY LIMIT queries now respect the memory limit as expected. #1468
  • Queries using indexed join no longer crash. #1478
  • Indexes can now be loaded in parallel as expected. #1479
  • The collect function, when called on an empty list, now yields no results instead of returning NULL. #1482
  • Using the WHERE and IN subclauses with lists now works as expected. #1494
  • The hash join executes as expected when using WHERE subclause. #1496
  • When encountering corrupted snapshot and WAL files during recovery, Memgraph now deletes them. #1385
  • The snapshot thread is now stopped when switching from IN_MEMORY_TRANSACTIONAL to IN_MEMORY_ANALYTICAL storage mode. Before, the snapshot thread was left running in the ANALYTICAL mode although it was unnecessary. #1385
  • When setting properties to all nodes at once using the SET subclause via client library, the number of set properties is returned as expected. #1460
  • Passing a variable that contains a list to the BFS algorithm now returns a results instead of an exception. #1380
  • Upon deleting data, garbage collector deallocates memory as expected. #1471
  • If you call a procedure that works on multiple threads and they pass the memory allocation limit, an exception will be thrown. Until now RAM suffered in silence. #1401

Lab v2.9.1 - Nov 15, 2023

Bug fixes

  • Memory and disk usage are now presented in KiB, MiB, and GiB instead of KB, MB, and GB.
  • Memory usage is not N/A anymore, it shows the correct value for Memgraph versions higher than 2.12.1.

Memgraph v2.12.0 - Nov 1, 2023

Upgrading to Memgraph v2.12.0

  • The SHOW STORAGE INFO; query now returns memory allocations in B, KiB, MiB, GiB or TiB, rather than just B so if any of your code depends on this information be sure to make the appropriate adjustments.

  • Snapshot and WAL files versions have been updated. Snapshot and WAL files created with Memgraph v2.12.0 and higher won’t be usable in previous versions of Memgraph (v2.11.1 and lower).

  • You no longer need the MAGE library to run schema procedures or convert.str2object() function.

New features and improvements

  • Snapshot and WAL files version have been updated. Snapshot and WAL files created with Memgraph v2.12 and higher won’t be usable in previous versions of Memgraph (v2.11.1 and lower). #1281
  • Memgraph can now start the instance in any storage mode, defined by the --storage-mode configuration flag.
  • The SHOW STORAGE INFO; query now returns memory allocations in B, KiB, MiB, GiB or TiB, rather than just B to make the information easily readable.#1366
  • Client libraries you can use to connect to Memgraph are now able to retry the queries in order to complete the transactions successfully. #1361
  • Information about the graph after running the ANALYZE GRAPH; is now persistent between instance reruns. #1281
  • Now, you can employ index hints by adding the USE INDEX subclause to the CREATE INDEX query to fine-tune the planner behavior. #1345
  • In certain situations, Memgraph returns a hint to create indexes to speed up read queries. #1343
  • The SHOW INDEX INFO; now also returns the information about the number of assigned indexes. #1229
  • Now, you can register REPLICA instances using DNS names. #1323
  • You can now use keys() and values() functions to get a list of keys and values of a map. #1246
  • You can now use schema procedures to get information about nodes and relationships or convert.str2object() function to convert strings to objects using Python’s json.dumps function. #1384
  • In your custom query modules, you can now remove the last element of a path in C++ API using path.Pop(), C API using mgp_path_pop and Python API using path.pop(). #1249
  • KeyExists function that checks the existance of a key in a map has been added to the C++ API. #1336
  • You can now change the relationship type using mgp::Graph::ChangeType in C++ API and mgp::graph_edge_change_type in C API. #1364
  • Reading of nodes stored on disk is now 2x faster. #1266
  • Searching for relationships stored on disk is now faster due to the ability to expand from a single node, rather than searching through all relationships. #1335
  • Due to several smaller improvements, Memgraph uses less memory and the garbage collection is more efficient. #1387
  • The query inspection report using EXPLAIN and PROFILE clauses now provides information about the operands of the Filter operator. #1265
  • Queries that have multiple MATCH clauses and the results are joined in a WHERE clause now execute more efficiently, due to the to the new HashJoin operator. #1226
  • The new Cartesian product operator optimizes queries that match nodes without relationship. #1193
  • Filtering and producing expressions in WITH and FILTER clauses have been optimized by adding cache. #1432
  • The verification of unique and existence constraints has been optimized. Constraints are now verified only when updating node labels or properties, as updates on relationships do not influence constraints. #1341

Bug fixes

  • The DISTINCT clause no longer influences other aggregates, that is, shows distinct values as exepcted. #1235
  • Any attempt to change the isolation level in in-memory analytical and on-disk storage mode will throw an exception. #1367
  • A bug that would cause the memory limit not to be honored has been fixed. #1250
  • The SHOW CONFIG; query now shows the correct values for the configuration settings, even if they were changed during runtime. #1278
  • Procedure names of the key:value pairs mapped in a JSON file no longer need to be identical to be correctly mapped. #1252
  • There are no longer data discrepancies between a REPLICA instance which is syncin with a new MAIN instance that became MAIN by being upgraded from the REPLICA role. #1370
  • A bug has been fixed which would shut down Memgraph when fetching data from SQL database. #1299
  • When setting a memory limit using --memory-limit config flag, Memgraph now stops the transactions exceeding the limit as expected. #1250 #1340
  • Memgraph now throws an exception when its out of memory, insted of not reporting an issue. #1379
  • Running a DELETE DETACH query on a non-existing relationship will no longer crash the database. #1335

MAGE v1.12.0 - Nov 1, 2023

  • With the new algo query module you can run A* algorithm or serach for all simple paths. #353 #371 #356
  • With the new merge query module you can merge or create nodes and relationships as per specified conditions, with more percision and coherence. #390
  • The node query module now has procedures that return the in and out degrees of a node. #369
  • The path query module now has functions that convert a given path into a list with a node-relationship-node order, as well as combine two paths into one and return them as a list in the node-relationship-node order. #394
  • The refactor query module now has a procedure you can use to rename a property of a relationship, delete certain nodes in a path from the graph and reconnect the path and normalize properties to boolean values. #376
  • You no longer need the MAGE library to run schema procedures and get information about nodes and relationships or convert.str2object() function to convert strings to objects using Python’s json.dumps function. #1384

Lab v2.9.0 - Oct 31, 2023

  • You can now run parameterized Cypher queries with query parameters defined using JSON format.
  • Memgraph Lab now indicates there’s a new version available for download and it allows you to check the release notes.
  • You can expand and collapse nodes by double-clicking on them in graph view.
  • The performance of the expand node query has been improved.

Lab v2.8.4 - Oct 12, 2023

Improvements

  • Increase the font size of the Cypher, GSS, and module editor using keyboard shortcuts CMD/CTRL + = or CMD/CTRL + -.

Bug fixes

  • Sections to copy and download results within query collections now close as expected.
  • Desktop version od Memgraph Lab no longer disconnects from Memgraph database instance within the first 3 seconds.
  • Query module procedures and functions link to the correct documentation link.

Lab v2.8.3 - Sep 29, 2023

Improvements

  • The status bar now shows Memgraph’s current storage mode: transactional, analytical, or on-disk.

Bug fixes

  • The reconnection screen now shows the correct Memgraph version and storage details, such as RAM and disk size.
  • All the help resources bound to the new Memgraph docs are now available.
  • Query result that would return a map with type: "node" no longer returns an error.
  • The window in the Collections section showing details about query runtimes now closes as expected.
  • Query error messages no longer show the redundant ”Query failed:” prefix.
  • The docker run command visible on the connection screen can now be correctly copied and pasted.

MAGE v1.11.1 - Sep 29, 2023

Improvements

  • Input and output parameter names of collections, create, label, map, refactor and schema query modules have been changed to align with Memgraph’s GraphQL mappings. Also some procedures are now functions. Functions can be called inline, while procedures are called using the CALL clause. #361 #362

Memgraph v2.11.0 - Sep 13, 2023

⚠️

Node Properties() and Relationship Properties() getter from the C++ API changed return type from std::map to std::unordered_map to speed up execution time. Check your C++ query modules for possible code changes.

New features and improvements

  • Node Properties() and Relationship Properties() getter from the C++ API changed return type from std::map to std::unordered_map to speed up execution time. This is a breaking change so check your C++ query modules for possible code changes. #1131

  • The import of relationships in on-disk storage mode can be improved by activating the EDGE IMPORT MODE ACTIVE;. When EDGE IMPORT MODE is disabled, the engine can import around 180 relationships per second. When active, the engine can import around 7500 relationships per second. #1157.

  • The following configurational settings can now be changed during runtime: server name, query execution timeout, log level and the option to log to stderr. Use the following queries to set the configuration:

    SET DATABASE SETTING 'server.name' TO 'new-name';
    SET DATABASE SETTING 'query.timeout' TO '100';
    SET DATABASE SETTING 'log.level' TO 'TRACE';
    SET DATABASE SETTING 'log.to_stderr' TO 'true`;

    #1183

  • The default value of --bolt-server-name-for-init is now Neo4j/v5.11.0 compatible graph database server - Memgraph. #1183

  • During recovery from a snapshot, the recovery of each graph object or property is no longer logged in the TRACE setting. The log now only indicates the recovery progress. #1054

  • There have been various updates that improved performance:

    • Updating indexes and constraints has been streamlined, significantly improving execution time for everybody making heavy use of them. #1159 #1142
    • Queries that build maps with multiple same-variable property lookups have been optimized. #1168
    • The batch update of properties improves performance when setting a large number of properties, as in this example:
      FOREACH (i in range(0, 1000000) | CREATE (n:Label {id:i}));
      
      CREATE INDEX ON :Label(id);
      
      FOREACH (i IN range(0, 1000000, 3) | MERGE (n:Label {id:i}) SET n += {prop2:"a1", prop3:"b2", prop4:"c3", prop5:"d4", prop6:"e5", prop7:"f6", prop8:"g7", prop9:"h8", prop10:"i9", prop11:"j10 q"});
      #1115
    • Setting properties is also improved by caching mappings of property name to internal property id. #1147
    • Performance has been improved for concurrent operations contending on the same node. #1187
    • When a query is executing in many iterations over the graph entities, the performance has been improved by 100% due to faster scanning of nodes, for example:
      UNWIND RANGE (1, 500) AS i CREATE ();
      MATCH (),(),() RETURN COUNT(*);
      #1127
    • The query engine is more performant as at all times it is scanning and expanding nodes instead of scanning both source and destination nodes and then expanding to the relationship between them. #1085
    • The expansion of node is no longer only done from left to right. Depending on the previous executions and how many relationships needed to be check on MERGE, the engine knows the fewest vector necessary to expand. #1110
    • The performance of DETACH DELETE query has been improved. #1078
  • When developing custom query modules, node and relationship properties can now be changed in bulk, rather than one by one. #1131

  • Changes to the C++ API:

    • Users can now call ToString() method on mgp::Value and Memgraph’s data types when writing query modules using C++ API. #1140
    • Trigger functions can now access deleted vertices from deleted edge when processed. #1209
    • When developing query modules using C++ API, you can now get the In and Out degrees of a node in O(1) time complexity. #1217
    • The C++ API now enables you to change relationship start (from) and end (to) nodes with mgp::Graph.SetFrom and mgp::Graph.SetTo methods.
  • SHOW INDEX INFO now displays index information in alphabetic order for easier orientation. #1178

  • The PROFILE query now generates a table with operators in the same order as in the plan constructed with the EXPLAIN query. #1024

  • Certain queries execute faster due to the usage of custom allocators for Delta objects. #1129

Bug fixes

  • Setting a property of a node labeled null will no longer crash the database, but return an exception. #1175

MAGE v1.11.0. - Sep 13, 2023

New features and improvements

  • The export_util has been expanded and now allows exporting query results, as well as graph nodes and relationships to a CSV file format. #325
  • With the export_util you can also export the graph to the Cypher query language in the specified file or stream, or a graphML file. #348 #327
  • The import_util can now also import data from graphML files. #327
  • The new util_module offers a range of functions for tasks such as validation and creating cryptographic hash values. This module serves as a practical resource for streamlining a variety of tasks related to database operations. #311
  • The node module provides a comprehensive toolkit for managing individual graph nodes, enabling creation, deletion, updating, merging, and more. #315
  • The nodes module provides a comprehensive toolkit for managing multiple graph nodes, enabling linking, updating, type deduction and more. #312
  • By enabling more precise and flexible creation of nodes and relationships within the graph structure, the create module enhances the ability of developers to model, manipulate, and query complex graph data. #307
  • The meta module provides a set of procedures for generating metadata about the database. #296
  • The path module allows users to explore different paths, filter relationships, and nodes based on specific criteria, and achieve more complex path-related tasks that go beyond the capabilities of native Cypher - whether you’re seeking all possible paths between two nodes, subgraphs that meet certain conditions, or various other path-oriented operations. #313
  • The refactor module provides utilities for changing nodes and relationships. #342
  • The xml_module enhances graph database capabilities by providing support for loading and parsing XML data. #329
  • The convert module is used for conversion of one data type to another. #326
  • The schema module offers procedures that allow you to interact with and retrieve information about the database schema. #341
  • The neighbors module provides tools for users to interact with and query nodes that have direct relationships to a specified node, enabling an examination of the immediate connections within the graph and thereby gaining insights into the network structure and connectivity. #308
  • The temporal module enables more sophisticated manipulation, conversion, and calculation of date and time. These functions handle temporal (time-related) operations and offer extended capabilities compared to the date functions. #299

Lab v2.8.2 - Sep 13, 2023

New features and improvements

  • Prepared datasets are now loaded 20-30 times faster, and 150 times faster if the database is in the in-memory analytical storage mode on Memgraph > 2.9.
  • You will be warned if your custom CYPHERL dataset import fails during the import process.
  • After being generated, the graph schema is cached and you can always regenerate it.
  • Run queries will now show the full roundtrip time spent on the query instead of just how much Memgraph spent on the query. You will still have the ability to see the segmentation and how much each component of query parsing, planning, and execution spent time on the query (also shows seconds, and minutes if needed, e.g. ##.## s).

Bug fixes

  • Map is now shown as expected when applying the System default Graph Style Script.

Memgraph v2.10.1 - Aug 22, 2023

New features and improvements

  • Removing properties from relationships with RemoveProperty() function in C++ API. #1156
  • Improved performance on batch update of properties, e.g., MATCH (n) SET n += {prop1:1, prop2:2, ...}; #1115
  • When working at a snapshot isolation level, if a certain graph object is changed multiple times as a part of one of many parallel transactions, the delta chain tracking its changes becomes very long. Other parallel transaction with snapshot insolation that started before the modifications and dependent on that object need to access and process that delta chain to get its correct state, which can be very expensive regarding CPU usage. Now, Memgraph is caching delta chains of 128 or more changes, which eliminates the need of processing the chain and improves performance. If you would benefit from changing at what length the delta chain should be cashed, adjust the value of the --delta-chain-cache-threshold configuration flag. #1124.

Bug fixes

  • The same query module can now be executed concurrently by different clients without issues. #1158

MAGE v1.10.0 - Aug 23, 2023

Features and improvements

  • You can use the label module to check whether a node has the given label. #304
  • Time zones don’t have to be difficult to work with. The date module provides utilities for date and time operations. #291
  • The text module simplifies string concatenation and supports custom delimiters. #287

Bug Fixes

  • LLM prompts returned by the llm_util module now list node and relationship properties in a consistent order. #324

Lab v2.8.1 - Aug 22, 2023

Bug fixes

  • Quick connect will now try to connect to Memgraph on 127.0.0.1 instead of localhost because it is not always clear what localhost will be resolved to.
  • Paths in query results now return a correct presentation instead of an empty path when there is only one node in the path.
  • On hard refresh of the Lab application, you are now redirected to the correct connection screen.
  • Logs no longer scroll automatically to new log records when you scroll up to check past log records.

Memgraph v2.10.1 - Aug 22, 2023

Improvements and bug fixes

  • Improved performance on batch update of properties, e.g.:

    MATCH (n) SET n += {prop1:1, prop2:2, ...};

    #1115

  • Added a delta cache to improve query performance. This helps in situations of repeated reads of vertices which have many delta changes caused by another transaction while the current transaction is operating with snapshot isolation level and so needs to process those deltas. This can be tuned using --delta-chain-cache-threshold. #1124

  • Concurrent access to the same query module had a race-condition on the pointer that was used to handle the custom memory management. A mapping has been added that keeps the information about what thread used what pointer to handle the memory resources, which should be fine since the respected query executions are running on a dedicated thread. Access to the mapping itself is thread-safe. A simple RWLock has been implemented here, as we shouldn’t include memgraph::utils from this header and a traditional mutex might be overkill. A simple RAII wrapper for the mapping container has been also added for simpler client-side use. #1158

Lab v2.8.0 - Aug 04, 2023

New features and improvements

  • You can now save and edit connection details so you don’t have to type them in on every reconnect.
  • A list of recent connections is now shown in the sidebar and you can use it to quickly connect to any of the recent successful connections.
  • When you click on a node or relationship in the Graph View, the object properties will be shown in a sidebar next to the Graph View rather then on the canvas next to the object.
  • Nodes can be expanded by a double-click.
  • As Memgraph now supports multi-tenant architecture, you can see the database you are currently working in the status bar with an option to switch to another database.
  • Along with the number of nodes and relationships in the database, the status bar now also shows the number of indexes, constraints, and triggers.
  • Now you can recenter, zoom in and zoom out the graph view by clicking on the action buttons in the bottom right corner of the Graph Results view.
  • Now you can copy query results to the clipboard in JSON, CSV, or TSV format.
  • You can start a name of a variable in Graph Style Script with an underscore _ which is pretty handy for defining local variables in @NodeStyle and @EdgeStyle directives.

Bug fixes

  • Setting up the z-index for edges in Graph Style Script now works as expected.
  • Large integer numbers in query table results are now shown correctly, e.g. it shows 10,000,000,000,000,001 for the query RETURN 10000000000000000 + 1 instead of incorrect result 10000000000000000.
  • Results now correctly show “No results” when there are no results in the query response, instead of a previously fetched result.
  • The Lab web application is no longer unexpectedly crashing when using the Memgraph Platform Docker image.

MAGE v1.9.0 - Aug 03, 2023

Features and improvements

  • With the new collections module you can filter, sort and modify lists within Cypher queries. #284
  • The new map module enables manipulating collections of key-value pairs, and consequently advanced data operations within a graph database context. #282

Memgraph v2.10.0 - Aug 2, 2023

New features and improvements

  • The new multi-tenant support available in the Enterprise Edition of Memgraph enables you to manage multiple isolated databases within a single instance. The primary objective is to facilitate efficient resource isolation, maintain data integrity, and manage access for different clients. #952

  • The configuration flag storage-recover-on-startup has been deprecated and replaced with data-recovery-on-startupto support multi-tenancy.

  • If you want to replace procedure names your application calls without changing the application code, you can define the mapping of the old and new procedure names in a JSON file, then set the path to the files as the value of the query-callable-mappings-path configuration flag. #1018

  • The C++ API for writing custom query modules now enables:

    • inserting mgp::Any datatype into Record. #1094
    • comparing two mgp::Value variables with the < operator. #1090
    • printing the type of mgp::Type enumeration using the << operator. For example, if you have a mgp::List list, cout<< list <<endl will output "list". #1080
    • printing mgp::Value variables (except mgp::Path, mgp::List and mgp::Map types) using the << operator. #1127
    • using the mgp::Value variables and all its subtypes (mgp::Map, mgp::Path, …) inside hash structures such as std::unordered_map and std::unordered_set. #1093
    • deleting and updating map elements with mgp::Map.Update(key, &value), mgp::Map.Update(key, &&value) and mgp::Map.Erase(key) functions. #1103
    • removing properties from nodes with RemoveProperty() function and labels with RemoveLabel() function. #1128 #1126

    Also, the mgp::Value wrapper for Memgraph’s data types has been extended to return subtypes which are modifiable (non-const). #1099

  • The C API for writing custom query modules now enables:

    • deleting and updating map elements with mgp_map_update(map, key, value) and mgp_map_erase(map, key) functions. #1103
    • removing labels from nodes with RemoveLabel() function. #1126
  • Memgraph supports transaction timeouts defined by the Bolt protocol if the connection to the database is established via the JavaScript client. #1046

  • Queries exploring all shortest paths now use considerably less memory without significant performance deterioration. #981

  • Users with fine grained privileges will experience better performance when running queries due to user information cashing. Any changes to the user privileges will be ignored until the next login. #1109

Bug fixes

  • Connection with Bolt v5.2 now works as expected when returning a path as a result. #1108
  • Serializing vertex and edge properties to RocksDB now works as expected even when the serialization buffer is exactly 15B. #1111
  • Users created in the Community Edition remain valid after the instance is upgraded to an Enterprise Edition. #1067

Memgraph v2.9.0 - Jul 21, 2023

⚠️

Memgraph 2.9 introduced a new configuration flag --replication-restore-state-on-startup which is false by default.

If you want instances to remember their role and configuration in a replication cluster upon restart, the --replication-restore-state-on-startup needs to be set to true when first initializing the instances and remain true throughout the instances’ lifetime.

When reinstating a cluster it is advised to first initialize the MAIN instance, then the REPLICA instances.

New features and improvements

  • The new ON_DISK_TRANSACTIONAL storage mode allows you to store data on disk rather than in-memory. Check the implementation and implications in the reference guide. #850
  • Memgraph now works with all Bolt v5.2 drivers. #938
  • The LOAD CSV clause has several new improvements:
    • You can now import data from web-hosted CSV files by passing the URL as a file location. You can also import files compressed with gzip or bzip2 algorithms. #1027
    • To speed up the execution of the LOAD CSV clause, you can add MATCH and MERGE entities prior to reading the rows from a CSV file. But, the MATCH or MERGE clause has to return just one row or Memgraph will throw an exception. #916
    • If a certain sequence of characters in a CSV file needs to be imported as null, you can now specify them with the NULLIF option of the LOAD CSV clause. #914
  • You can now use mgp::Type::Any while developing a custom query procedure with the C++ API to specify that the argument of the procedure can be of any type. #982
  • When you need to differentiate transactions, you can now define and pass transaction metadata via the client and check it in Memgraph by running the SHOW TRANSACTIONS; query. #945
  • You can now create custom batch procedures in Python and C++ that process data in batches, thus consuming less memory. #964
  • The ANALYZE GRAPH; query now includes information about the degree of all nodes to enhance the MERGE optimizations on supernodes. #1026
  • The --replication-restore-state-on-startup configuration flag allows you to define whether instances in the replication cluster will regain their roles upon restart (true) or restart as disconnected “blank” MAIN instances (default setting false). This flag resolved the unwanted behavior of restarted REPLICA instances disconnecting from the cluster, but it also needs to be introduced to MAIN instances so they are not disconnected from the cluster upon restart. #791

Bug fixes

  • init-file and init-data-file configuration flags allow the execution of queries from a CYPHERL file, prior to or immediately after the Bolt server starts and are now possible to configure in the Community Edition as well. #850
  • The IN_MEMORY_ANALYTICAL storage mode now deallocates memory as expected and no longer consumes memory excessively. #1025
  • When no values are returned from a map, a null is returned instead of an exception occurring. #1039

MAGE v1.8.0 - Jul 21, 2023

Features and improvements

  • With the llm_util module you can generate a graph schema in a format best suited for large language models (LLMs). #225
  • When executing complex queries, the periodic module allows batching results from one query into another to improve execution time. #221
  • The conditional_execution module which allows the execution of different queries depending on certain conditions being met, has been rewritten from Python to C++ to improve performance and it can also periodically iterates. #222
  • The migrate module has the option to get data from MySQL, SQL server, or Oracle DB to migrate it to Memgraph. #209

Lab v2.7.1 - Jul 05, 2023

Improvements

  • System Default style has been renamed to System Style.
  • If you run a query that has errors in the Graph Style Script code, you can decide to run it using the System Style.

Bug fixes

  • Bug that would allow multiple styles to be the default has been fixed.
  • The System Default Style now has background-color set to white.
  • Queries selected in the Query Editor now execute as expected.
  • Creating and editing a query module as well as selecting a transformation module in the Streams section now work as expected.
  • All links are now linked with appropriate external resources.
  • The pop-up window in the Run History that allows rerunning the query now closes once an option is selected.

Lab v2.7.0 - Jun 28, 2023

What's new

  • Now you can adjust the following settings:

    • Code completion and automatic graph rendering limits
    • The capacity of run history and its clearing
    • The limit for visible logs

  • The new interfaces for managing saved styles enables searching and changing the default style in the Lab. The saved styles now also have a preview.

  • The run history now also tracks changes to the query, style, or both. You can also filter out records to show All (both queries runs and applied styles), Query history (only query runs), and Style history (only applied style changes). You can expand both the query and style to see the full Cypher or GSS code.

  • Queries inside a collection can be expanded and collapsed by clicking on their name.

  • When testing and trying out different functions in the GSS you can use single-line (// comment) and multi-line (/* comment */) comments in the GSS code editor without losing previous state.

  • Change the canvas color of the graph view with the new property background-color in @ViewStyle.

  • Change the stack order of how nodes and edges are rendered in the graph view with the property z-index in @NodeStyle and @EdgeStyle directives. It works the same as the CSS z-index property.

  • Set up transparent colors with the new GSS functions RGBA and HSLA. You can also get the transparency value with the function Alpha.

  • New functions allow more customizations: Sort, Coalesce, Reverse, IsMap, AsMap, Execute, Get, Set, Del, MapKeys, MapValues, AsIterator, IsIterator, Next

  • Global and local variables make developing new styles easier:

    • Variable graph is now available outside @NodeStyle and @EdgeStyle context
    • Local variables can be defined with Define within @NodeStyle and @EdgeStyle context
  • Memgraph Lab is now packaged as an RPM package and arm64 (M1 chip) for MacOS.

Bug fixes

  • Running a selected part of the Cypher query would just place that selected part in the run history. Now, the full query will be saved in the run history, and on its run, only the selected part will be executed again.
  • Rows that would hide when scrolling the data results view now preview as expected.
  • The System Default style colors all the nodes with the same label with a unique color.
  • When showing a graph view on a map, you will no longer see a progress percentage which is unnecessary as each node has a fixed and known position due to its latitude and longitude values.
  • All tables across the Lab are responsive as expected.
  • Layouts no longer cause memory leaks and work as expected.
  • By fixing a bug, you can now successfully connect to Memgraph using a hostname that contains numbers in the top-level domain.
  • Markdown lists in query descriptions are indented as expected.

Memgraph v2.8.0 - May 18, 2023

New features and improvements

  • Data recovery is now up to 6x faster depending on the number of available cores, as snapshot loading is distributed among several threads. #868
  • During the recovery, indexes can also be created using multiple threads, thus speeding up the process. #882
  • In the Enterprise Edition, Memgraph now exposes system metrics via an HTTP endpoint, so you can get information about transactions, query latency and various other properties. #940
  • It’s now possible to use the map projection syntax to create maps. Map projections are convenient for building maps based on existing values and they are used by data access tools like GraphQL. #892
  • You can now check if the data directory is (un)locked with the DATA DIRECTORY LOCK STATUS; query. #933
  • You can now check the current storage mode and isolation levels by running the SHOW STORAGE INFO; query. #883
  • Check the suspected build type of the Memgraph executable by running the SHOW BUILD INFO; query. #894
  • Performance has been improved by optimizing the deallocation of resources in Memgraph’s custom PoolResource memory allocator. #898

Bug fixes

  • Running Python procedures now consume less memory. #932
  • Memory allocation in LOAD CSV queries has been optimized to avoid performance degradation. #877
  • Query profiles of the LOAD CSV queries now show the correct values of memory usage. #885

Lab v2.6.0 - Apr 20, 2023

What's new

  • If you execute multiple Cypher queries, you can now view the result of each query instead of viewing just the last result. results
  • Besides exporting query results to JSON, you can also export them to CSV and TSV file format. download
  • If the dataset contains millions or billions nodes and relationships, their count in the status bar will be in the following format: X.XXM or X.XXB.
  • Syntax of code blocks in the query collection description can now be highlighted by using one of the following language styles: cypherbashpythoncssccppjsonsql, and yaml. Check the examples of syntax highlighting in the Markdown Guide. markdown
  • New functions of the Graph Style Script language used for customizing graph appearance are: Reduce, Sum, Avg, Min, Max, IsArray, Hue, Saturation, Lightness, HSL. gss

Bug fixes

  • The initial node count has been removed from the connection initialization so connecting to the Memgraph instance containing a huge number of nodes will no longer cause a timeout.
  • Run History now logs queries as expected.
  • When switching between the map view and the default view the graph view no longer becomes unresponsive.
  • Using a new line character \n in the query module doesn’t result in a new line, but an explicit character \n.
  • Viewing the code of multiple query modules in the split screen now works as expected.
  • Notifications no longer mix with the Query Editor and Query Collections visual elements.
  • Pressing CMD/CTRL + S will save a query within a query collection execution section as intended.
  • The autosave in query collection is now triggered on every query run as it was intended.
  • Running a selected portion of the query won’t remove the rest of the query from the query collection execution view.
  • GSS Blue function was returning a wrong number. It is fixed now. Lighter and Darker functions now work correctly as well because they were depending on the output from the Blue function.

Memgraph v2.7.0 - Apr 5, 2023

New features and improvements

  • You can now choose between two different storage modes:
    • Transactional mode - the default database mode that favors strongly-consistent ACID transactions using WAL files and periodic snapshots, but requires more time and resources during data import and analysis.
    • Analytical mode - speeds up import and data analysis but offers no ACID guarantees besides manually created snapshots. Switch between modes within the session using the STORAGE MODE IN_MEMORY_{TRANSACTIONAL|ANALYTICAL}; query. #772
  • You can now call subqueries inside existing queries using the CALL clause. #794
  • When you want to filter data using properties that all have label:property indexes set, you can make Memgraph analyze the properties on all or several labels with the ANALYZE GRAPH; query. By calculating the distribution of property values, Memgraph will be able to select the optimal index for the query and it will execute faster. #812
  • If, for example, you are no longer interested in the results of the query you ran, or the procedure you built is running in an infinite loop, you can stop the transaction with the TERMINATE TRANSACTIONS tid; query; Find out the transaction ID with SHOW TRANSACTIONS; query. #790
  • With the new flag password-encryption-algorithm you can choose between bcrypt, sha256, and sha256-multiple encryption algorithms. SHA256 offers better performance compared to the more secure but less performant bcrypt. #839
  • Import using the LOAD CSV clause has been further improved by using a memory allocator which will reuse memory blocks allocated while processing the LOAD CSV query. #825

Bug fixes

MAGE v1.7.0 - Apr 5, 2023

Features and improvements

MAGE v1.6.1 - Mar 20, 2023

Features and improvements

  • With the export_util.csv_query() procedure, you can export query results to a CSV file or as a stream. #199
  • Similarity algorithms (jaccard, overlap and cosine) have been rewritten in C++ to improve performance. #196

Lab v2.5.0 - Mar 17, 2023

What's New

  • If there are several Cypher queries in the query editor you can select a single query and run it without commenting out all the other queries.

run-selected-query-in-the-lab

  • You can now open multiple query executions views side by side and compare query execution speed or results.

multiple-query-executions-in-the-lab

  • Query modules are now sorted alphabetically for easier and faster browsing. A search box has also been added to query modules with more than 5 procedures to help narrow them down (e.g. nxalg query module has 49 procedures).
  • When rendering a graph with more than 3,500 nodes or 8,500 relationships, which might take considerable amount of time to preview, you will be asked if you want to proceed with the graph visualization or switch to the data view.
  • Besides manually saving changes in the Cypher query and GSS style editor in the query collections section, they will also be saved automatically after each query run.
  • Memgraph Lab will now notify you of any product updates and offer various tips and tricks for using the Memgraph ecosystem.

Bug Fixes

  • Cypher code suggestions can now handle labels and properties of 250k nodes and 500k relationships, compared to the previous limit of 100k nodes nad 200k relationships.
  • Multiple scrollable elements of the query collections was making scrolling difficult. Now you can focus on a particular element and scroll through it by clicking on it.
  • Browser’s back button is now working as expected when using Lab as a web application.
  • Data in the query results, query modules and query run history tables now loads faster making the scrolling smoother and improving the user experience.
  • Graph schema is now generated even if the database has no relationships.
  • In-progress feedback when generating graph schema and exporting datasets for graphs with more than 10M nodes is now previewed as expected.
  • A scrolling issue with expanded results in the Data view where you couldn’t see a completely expanded row because the scroll would jump to the next row is now fixed.
  • Dataset cards no longer spread apart when conducting a search.

Memgraph v2.6.0 - Mar 07, 2023

Major features and improvements

  • Importing speed using the LOAD CSV clause has been improved due to two changes:
    • Performance improvement in accessing values from large arrays or maps with numerous properties. #744
    • Upon creating a large number of node or relationship properties, properties are stored in a property store all at once, instead of individually. #788
  • Newly implemented exists() function allows using patterns as part of the filtering clause. Check the Cypher Manual for usage. #818
  • With the new Python mock query module API, you can now develop and test Python query modules for Memgraph without having to run a Memgraph instance. The mock API is compatible with the Python API and thus developed modules can be added to Memgraph as-is. #757
  • Memgraph now supports Fedora 36 and Ubuntu 22.04 for ARM. #787 #810

Bug fixes

  • torch and igraph can no longer be removed from the svs.modules cache to avoid issues after reload. #720
  • Newly created nodes now comply with the set label based authorization rules. #755
  • Constructing LocalDateTime objects with invalid parameters doesn’t crash Memgraph anymore, but throws an informative exception. #819
  • Error message warning about incompatible epoch_id between a MAIN and REPLICA instance has been improved. #786

MAGE v1.6.0 - Jan 30, 2023

Major Features and Improvements

Memgraph v2.5.2 - Jan 26, 2023

Bug Fixes

  • Variables can be used inside nested FOREACH clauses. #725
  • FOREACH clause can now use indexes if needed (e.g. in case of MERGE). #736
  • C++ API now allows setting and getting node and relationship properties. #732
  • OPTIONAL MATCH can now use label property indexes that are referencing the previously matched variables. #736
  • Iterating over all relationships in a graph now works as expected, as well as checking whether the graph contains a given relationship. #743
  • Implementation of the All Shortest Paths algorithm was fixed so the paths are no longer duplicated when the upper bound is used. #737

MAGE v1.5.1 - Jan 20, 2023

Major Features and Improvements

  • The version of MemgraphDB that will be used in the Docker image has been updated to 2.5.1. #193

Memgraph v2.5.1 - Jan 19, 2023

Bug Fixes

  • The LOAD CSV clause now uses less RAM to load a whole CSV file. Modification made to improve the LOAD CSV operation, also influenced high memory usage operations with objects such as lists and map. Modifying or accessing elements inside those objects now also uses less RAM. #712
  • The logic of the read_write_type_checker was corrected so queries now get the right rw_type, making the replication system work as expected. #709
  • Bolt protocol has been improved by adding the server-assigned query ID (qid) as part of the transactions’ metadata. #721
  • Fixed a trigger bug that would cause an error if Memgraph is configured to run without properties on edges. As a result of the fiy, triggers are now working as expected when there are no properties on edges. #717

MAGE v1.5.0 - Dec 20, 2022

Major Features and Improvements

  • Now you can find ancestors (all the nodes from which a path exists ) and descendants (all nodes to which a path exists) starting from a certain node, sort directed acyclic graph in a way that a node which appears before others is first, return a subgraph from nodes using connect_nodes method, and create relationships between nodes in a list using the chain_nodes method. #180
  • C++ API is now aligned with Memgraph 2.5 #184
  • Graph Coloring no longer outputs strings but vertices and integers. This allows you to use the result of graph coloring directly in Memgraph Lab. #177

Bug Fixes

  • By enabling module reset, you can now train and evaluate the model without shutting down the database. Class labels can now start from 0 or negative numbers. The low limit of the early stopping flag no longer prematurely stops the training of the model while running the Node classification module. #173

Memgraph v2.5.0 - Dec 13, 2022

Major Features and Improvements

  • DISTINCT operator can now be used with aggregation functions. Until now, if you wanted to use an aggregation function with distinct values, you had to write a query similar to this one WITH DISTINCT n.prop as distinct_prop RETURN COUNT(distinct_prop). Now you can use the DISTINCT operator like in the following query, RETURN COUNT(DISTINCT n.prop). #654
  • You can now create a user before the Bolt server starts using the environment variables MEMGRAPH_USER for the username, MEMGRAPH_PASSWORD for the password and MEMGRAPH_PASSFILE file that contains username and password for creating the user in the following format: username:password. #696
  • With the new configuration flag init_file you can execute queries from the CYPHERL file which need to be executed before the Bolt server starts and with the configuration flag init_data_file you can execute queries from the CYPHERL file immediately after the Bolt server starts. #696

Bug Fixes

  • Constructors and assignment operators in the C++ query modules API now work as expected, and the API type check in the ValueNumeric method now correctly recognizes numeric types. #688
  • Error message support (SetErrorMessage) has been added to query methods that use the MAGE C++ API. #688
  • The EmptyResult sink operator was added to the Memgraph’s planner. This means that results produced by a query MATCH (n) SET n.test_prop = 2 will get exhausted which was a problem in some Bolt clients implementations, e.g in Golang’s client. #667
  • Fixed Python submodules reloading when calling CALL mg.load() and CALL mg.load_all(). Before, only the Python module would be reloaded, but now all dependencies get reloaded as well. This includes Python’s utility submodules and Python packages, which means that the environment with Python packages can be changed without turning off the database. #653

Lab v2.4.0 - Dec 2, 2022

What's New

  • Memgraph Lab now supports manual transaction workflows you can construct using transaction commands BEGIN, COMMIT, and ROLLBACK.
  • Cypher intellisense has been updated to suggest new Cypher features from Memgraph 2.4.0 such as:
    • Privileges for user-role authorization.
    • Commands and privileges for label-based authorization.
    • Manual transaction commands: BEGIN, COMMIT, ROLLBACK.
    • Checking configuration with SHOW CONFIG.
    • All shortest path algorithm allShortest.
    • Graph projection function project.
    • Additional query module signature that accepts a projected graph as an optional first argument.
  • Graph results view will check for nodes and relationships in arrays and projected graphs. It simplifies the visualization of a projected graph or an array of nodes/relationships without using UNWIND.

Bug Fixes

  • Once the table results view is selected, the results of the following query run will also preview in the table results view, instead of automatically switching to the graph view.
  • Exploring a dataset’s query collection now works as expected. It opens up a list of queries that can be used to explore the dataset.
  • Failed queries from the rich collections now return a detailed error message.
  • Save code changes button in rich collections will now be enabled only if there are unsaved changes for the Cypher query or GSS.
  • A bug that would only show the first node label instead of all node labels in the table results view has been fixed.

MAGE v1.4.0 - Nov 15, 2022

Major Features and Improvements

  • Implemented Link prediction with DGL. #160
  • Implemented Node classification with PyTorch. #161
  • Added igraph support. #150
  • Added k-means embedding clustering algorithm. #105
  • Added better support for C++ API. #174

Bug Fixes

  • Enable module reset to be able to train and evaluate without shutting down database, enable working with class labels which don’t start from 0, and fix potential early stopping due to low limit in the Node classification module. #173

Memgraph v2.4.2 - Nov 7, 2022

Bug Fixes

  • Fixed a bug when calling AllShortestPath with id function. #636
  • Fixed bug when getting iterating over in-edges of a Node. #582

Lab v2.3.1 - Nov 4, 2022

Bug Fixes

  • Writing a single-line comment in the Cypher code no longer results in an error.
  • Having different map tiles (e.g. “light” map tile on one map view, but “dark” map tile on another map view) for multiple graph map views in the rich collection is enabled and works as expected.
  • Graph rendering freeze when toggling the map view on/off during the graph rendering process has been fixed.
  • All the information about nodes and edges on the graph schema is now previewed as expected.
  • A bug that would mix query title and description when queries are reordered in the rich query collection has been fixed.
  • A bug that would not reset the description field when adding a new query to the query collection has been fixed.
  • Saving a new style now works as expected. The active style is saved, not the last applied one.

Lab v2.3.0 - Oct 24, 2022

What's New

  • Add new updates to the prepared datasets:
    • Add a search bar for searching and filtering datasets.
    • Add featured (highlighted) datasets.
    • Add rich collections with prepared queries, descriptions, and GSS for each dataset.
  • Add new updates to the latest queries:
    • Change the name from “Latest queries” to “Run history” because it contains both queries and GSS changes.
    • Show GSS changes in the “Run history” section.
  • Replace previous collections with “Rich collections”:
    • Add more context to each collected query: title, markdown description, Cypher query, and GSS.
    • Add the ability to run multiple query executions within the query collection.
    • Add import and export functionality of a collection.
  • Add a new version of GSS:
    • Add new GSS directive @ViewStyle to configure physics, link distance, repel force, and view type (default or map).
    • Add new GSS directive @ViewStyle.Map to configure map tiles for map view.
    • Add new GSS functions: Slice, Split, Replace, Trim, Nodes, Edges, IsNumber, IsBoolean, IsString, IsNull.
    • Add new GSS node properties latitude and longitude used to define the latitude and longitude of each node for the map view.
  • Integrate graph visualization library orb.
  • Add the ability to enable/disable map background view for nodes with geo information.
  • Add the ability to connect to Neo4j, load datasets, and run Cypher queries.

Bug Fixes

  • Fix map view to use latitude and longitude from GSS style instead of lat and lng node properties.
  • Fix the default GSS to match new the map view configuration by checking lat and lng node properties.

MAGE v1.3.2 - Oct 10, 2022

Major Features and Improvements

  • Allowed restricting community detection to subgraphs. #152
  • Implemented the degree centrality algorithm. #162
  • Updated Memgraph version. #171

Bug Fixes

  • Dynamic betweenness centrality bugfix. #147

Memgraph v2.4.1 - Oct 7, 2022

Bug Fixes

  • Fixed bug when getting EdgeType from Edge object or Label from Vertex object in query modules. #582
  • Fix a bug when changing role permissions for label based authorization, by passing user’s instead of role’s fine_grained_access_handler. #579

Memgraph v2.4.0 - Sep 15, 2022

Major Features and Improvements

  • Add replica state to SHOW REPLICAS query. #379
  • Add current_timestamp and number_of_timestamp_behind_master to SHOW REPLICAS query. #412
  • Query REGISTER REPLICA replica_name SYNC no longer supports TIMEOUT parameter. To mimic the previous behavior of REGISTER REPLICA replica_name SYNC WITH TIMEOUT 1, one should use REGISTER REPLICA replica_name ASYNC instead. #423
  • Make behavior more openCypher compliant regarding checking against NULL values is CASE expressions. #432
  • Previously registered replicas are automatically registered on restart of Memgraph. #415
  • Add new command SHOW CONFIG that returns the configuration of the currently running Memgraph instance. #459
  • Extend the shortest paths functionality with All Shortest Path query. #409
  • Extend the query modules C and Python API to enable logging on different levels. #417
  • Added C++ query modules API. Instead of using the C API call, C++ API calls significantly simplify the implementation of fast query modules. #546
  • [Enterprise] Added support for label-based authorization. In addition to clause-based authorization rules, each user can now be granted NOTHING, READ, UPDATE, or CREATE_DELETE permission on a given label or edge type. #484
  • New Cypher function project() creates a projected graph consisting of nodes and edges from aggregated paths. Any query module or algorithm can be now run on a subgraph, by passing the variable of the projected graph as the first argument of the query module procedure. #535

Bug Fixes

  • Added a check to ensure two replicas cannot be registered to an identical end-point. #406
  • toString function is now able to accept Date, LocalTime, LocalDateTime and Duration data types. #429
  • Aggregation functions now return the openCypher-compliant results on null input and display the correct behavior when grouped with other operators. #448
  • Corrected inconsistencies and incorrect behavior with regards to sync replicas. For more detail about the behavior, please check Under the hood view on replication. #435
  • Fixed handling ROUTE Bolt message. Memgraph didn’t handle the fields of ROUTE message properly. Therefore the session might be stuck in a state where even the RESET message did not help. With this fix, sending a RESET message will properly reset the session. #475

Lab v2.2.1 - Aug 12, 2022

What's New

  • Add improved and more precise progress when importing built-in datasets.
  • Add an indicator for the total count of error log messages in the sidebar.
  • Change the color scheme of code snippets for query modules.
  • Add a help section when Lab’s connection is reconnecting.
  • Add breadcrumbs for the layout titles.

Bug Fixes

  • Fix issues with query collections.
  • Fix vertical layout usability when the help sidebar is opened.
  • Fix various UI and UX issues across the application.
  • Fix query results on the reconnected connection.

Lab v2.2.0 - Jul 15, 2022

What's New

  • Add a new table look and feel across the application: query results, the latest queries, modules, streams.
  • Add a help section with relevant links, guides, and documentation search capability.
  • Add test parameters (batch size, timeout) for testing stream transformation.
  • Add new GSS functions: Round, Floor, and Ceil.

Bug Fixes

  • Fix various issues in graph view, streams, and query collections.

MAGE v1.3.1 - Jul 14, 2022

Major Features and Improvements

  • Updated Memgraph version. #154
  • Introduced E2E group testing. #145

Lab v2.1.2 - Jun 21, 2022

What's New

  • Add a dashboard and overview page for the better onboarding experience.
  • Add environment variables for query, modules, and streams name length validator limits.
  • Add logs connection status messages in the logs view.

Bug Fixes

  • Fix several bugs with the stream configuration creation.
  • Fix showing the logs when connected to Memgraph via an encrypted SSL connection.

Memgraph v2.3.1 - Jun 23, 2022

Improvement

  • Updated results return by CHECK STREAM query to group all queries/raw messages on single line per batch. #394
  • Add frequent replica ping. main instance checks state of the replicas with given frequency controller by --replication-replica-check-delay-sec. The check allows latest information about the state of each replica from main point of view. #380
  • Added BATCH_LIMIT and TIMEOUT options to START STREAM query that returns the raw message received by the transformation. #392

Bug Fixes

  • Fix header on SHOW REPLICATION ROLE query and wrong timeout info on SHOW REPLICAS query. #376
  • Fix WebSocket connection with clients that do not use binary protocol header. #403
  • Fix SSL connection shutdown hanging. #395
  • Fix module symbol loading with python modules. #335
  • Fix header on SHOW REPLICATION ROLE query and wrong timeout info on SHOW REPLICAS query. #376
  • Adapted compilation flag so that the memory allocator uses JEMALLOC while counting allocated memory. #401

Lab v2.1.1 - May 27, 2022

What's New

  • Add tooltips and highlights throughout the application.

Bug Fixes

  • Fix several bugs with streams.

Lab v2.1.0 - May 25, 2022

What's New

  • Add the ability to view, create, edit, start, stop, test, and remove streams.
  • Add a new connecting screen with the ability to set monitoring (logs) port.
  • Add Cypher query persistence when closing/opening Cypher query editor.
  • Add node label, relationship type, and node/relationship property Cypher code suggestions for small graphs (number of nodes < 100k and number of relationships < 200k).
  • Add module function Cypher code suggestions.
  • Add module support for adding functions along with mgp suggestions and documentation.
  • Add new GSS graph functions: InEdges, OutEdges, Edges, AdjacentNodes, StartNode, EndNode, NodeCount, EdgeCount.
  • Add new GSS array functions: RandomOf, Find, Filter, Map, All, Any, Uniq.

Bug Fixes

  • Fix the UI for the GSS error messages.
  • Fix the Cypher code suggestion for modules with . in the namespace name.
  • Fix several bugs with query collections.
  • Fix the empty states across the application.
  • Fix the import progress bar.
  • Fix the graph schema for an empty database.
  • Fix the responsiveness across the application.
  • Add the maximum limit of five vertical layouts.
  • Fix the loading issue when running multiple Cypher queries at once.

MAGE v1.3.0 - May 23, 2022

Major Features and Improvements

  • Added integration between cuGraph and Memgraph integration. #99

Bug Fixes

  • Fixed node deletion. #141

Memgraph v2.3.0 - Apr 27, 2022

Major Features and Improvements

Bug Fixes

  • Fixed incorrect loading of C query modules. #387

Lab v2.0.3 - Apr 27, 2022

Bug Fixes

  • Fix the encrypted connection creation towards Memgraph.
  • Fix duplicate keywords in Cypher and Python code suggestion tools.

Lab v2.0.2 - Apr 22, 2022

Major Features and Improvements

  • Add guides for empty states throughout the app.
  • Add an ability to close hints for transformations and procedures in module view.
  • Add an ability to download query results in JSON format.
  • Add confirmation step for all delete actions throughout the app.
  • Add the generic Cypher query as a sample query after custom dataset file import.

Bug Fixes

  • Fix the table view with a better resize functionality throughout the app.
  • Change the color of the node labels and relationship types in the Cypher query editor.
  • Fix the delete query collection action.
  • Fix opening an external link in the browser instead of the Lab app.
  • Fix the initial render of the map for geo graph results.
  • Replace the toast message “Web socket stopped working” with better notice in the “Logs” view.

MAGE v1.2.0 - Apr 20, 2022

Major Features and Improvements

  • Implemented Temporal graph networks. #121
  • Implemented Dynamic Betweenness Centrality. #127
  • Implemented Dynamic Katz Centrality. #117
  • Implemented Louvain Community Detection. #48
  • Implemented Maximum Flow. #125
  • Implemented Static Katz Centrality. #117
  • Added utility Import/Export module (JSON). #100
  • Bumped the version of Black formatter. #132

Bug Fixes

  • Fixed IsSubset checking for unordered set. #135
  • Fixed Continuous integration. #133
  • Fixed E2E testing. #128
  • Fixed ID validity check. #129

Lab v2.0.1 - Apr 8, 2022

Major Features and Improvements

  • Add context (graph schema, description) to each dataset template.
  • Add an action to download query results.

Bug Fixes

  • Fix the bug when adding a query to the query collection.
  • Fix several typos and copies.
  • Fix the web socket connection issue for the manual Memgraph connect.
  • Fix initial code suggestions which are dependent on the Memgraph version.

Lab v2.0.0 - Mar 31, 2022

Major Features and Improvements

  • Add horizontal and vertical layouts for custom layout configuration.
  • Add more query information in the latest queries: runtime, status, number of results.
  • Add query collections to structure and save favorite queries.
  • Add better Cypher code suggestion for functions, modules, nodes, relationships, properties.
  • Add Cypher code documentation on highlight.
  • Add Graph Style Script code suggestion for @NodeStyle, @EdgeStyle, properties and functions.
  • Add Graph Style Script code documentation on highlight.
  • Add improved table views throughout the app.
  • Add new rendering and simulation engine based on D3.js.
  • Add new rendering simulation options: collision, repel force and link distance.
  • Remove definition of query parameters when running a Cypher query with $variable.
  • Add real-time logs view from Memgraph.
  • Add a status tray with connection status and main Memgraph metrics.
  • Add real-time connection status and automatic reconnect ability.
  • Add new graph schema view with distribution of present properties in nodes/relationships.
  • Add ability to view, edit, remove and change query modules.

Memgraph v2.2.1 - Mar 17, 2022

Bug Fixes

  • Added CentOS 7 release by fixing the compatibility issue with the older version of SSL used on CentOS 7. #361

Memgraph v2.2.0 - Feb 18, 2022

Major Features and Improvements

  • Added support for compilation on ARM architectures (aarch64) and Docker support for running Memgraph on Apple M1 machines. #340
  • Added monitoring server that forwards certain information from Memgraph to the clients connected to it (e.g. logs) using WebSocket. #337
  • Added CONFIGS and CREDENTIALS options to Kafka streams. #328
  • Added built-in procedures used for handling Python module files. mg.create_module_file, mg.update_module_file, mg.delete_module_file, mg.get_module_file, and mg.get_module_files allow you to do modifications on your Python module files, get their content, and list all the files present in your query module directories directly from Memgraph. #330
  • Built-in procedures mg.procedures and mg.transformations return additional information about the procedures and transformations scripts. path returns an absolute path to the module file containing the procedure, while is_editable returns true if the file can be edited using Memgraph or false otherwise. #310
  • Added SHOW VERSION query that returns the version of the Memgraph server which is being queried. #265

Bug Fixes

  • The reference count is increased when Py_None is returned from the _mgp module. This fixes a nondeterministic fatal Python error. #320
  • Use correct error when printing warning in rebalance callback of Kafka consumer. #321
  • Fix transaction handling in streams in case of serialization error. Previously, a serialization error caused an exception to be thrown since nested transactions are not supported. After this fix, the transactions are handled correctly in the transaction retry logic. #339
  • Temporal types LocalTime and LocalDateTime instantiations return subsecond precision. Additionally, query modules mg_local_date_time_now() and mg_local_time_now() also return subsecond precision. #333

MAGE v1.1.0 - Dec 13, 2021

Major Features and Improvements

  • Updated rsmgp-sys to the new MGP API. #78
  • Add temporal type to rsmgp-sys. #82
  • Implemented node2vec. #81
  • Updated GraphView abstraction. #85
  • Implemented approximative streaming PageRank. #69
  • Implemented weighted graph methods built for dynamic community detection. #89
  • Implemented LabelRankT dynamic community detection algorithm. #66

Bug Fixes

  • Fixed memory leakage. #77
  • Solved dependency vulnerability. #83
  • Fixed set_cover.greedy result type bug. #76
  • Fixed MAGE installation on Linux based distro. #92

Memgraph v2.1.1 - Dec 07, 2021

Breaking Changes

  • Loading streams created by versions of Memgraph older than 2.1 is not possible. We suggest you extract the necessary information using the older version of Memgraph and recreate the streams in a newer version (Memgraph 2.1 and newer).

Major Features and Improvements

  • Added procedures for retrieving configuration information specific for each stream type. mg.pulsar_stream_info will return information about a specific Pulsar stream and mg.kafka_stream_info will return information about a specific Kafka stream. #301
  • SHOW STREAMS now returns default values for batch interval and batch size if they weren’t specified. #306

Bug Fixes

  • Query execution stats, returned after a Cypher query was executed, are now updated with the changes made in write procedures. #304
  • Loading streams created by older versions won’t cause Memgraph to crash. #302

Lab v1.3.6 - Dec 3, 2021

Bug Fixes

  • Fix the bug when returning edges: Cannot read properties of undefined (reading 'push').

Memgraph v2.1.0 - Nov 22, 2021

Breaking Changes

  • Loading streams created by older versions cause Memgraph to crash. The only possible workaround involves deleting the existing streams. The streams can be deleted by the DROP STREAM query in the old versions of Memgraph. After upgrading to this version, the streams directory has to be deleted manually from Memgraph’s data directory (on Debian-based systems, it is /var/lib/memgraph by default).
  • The query for creating a Kafka stream now requires the KAFKA keyword. The previous form CREATE STREAM ... was changed to CREATE KAFKA STREAM ....

Major Features and Improvements

  • Now supporting Bolt protocol version 4.3. #226
  • Streams support for retrying conflicting transactions. When a message is processed from a certain stream source, a query is executed as a part of the transaction. If that transaction fails because of other conflicting transactions, the transaction is retried a set number of times. The number of retries and interval between each retry can be controlled with configs --stream-transaction-conflict-retries and --stream-transaction-retry-interval. #294
  • Added procedure to configure the starting offset (to consume messages from) of a topic (and its partitions). #282
  • Added BOOTSTRAP_SERVERS option to CREATE KAFKA STREAM which you can check here. #282
  • Added Bolt notifications in the query summary to inform the user about results or to give useful tips. When a query executes successfully, sometimes is necessary to give users tips or extra information about the execution. #285
  • Added execution statistics in the query summary to inform user on how many objects were affected. E.g., when you run a query with a CREATE clause, you’ll know how many nodes/edges were created by it. #285
  • Added support for connecting to Pulsar as a new stream source. For more details, check out our reference pages. #293

Bug Fixes

  • Allow duration values to be used as weights in the Weighted Shortest Path query. #278
  • Fix linkage error when mgp_local_time_get_minute is used. #273
  • Fix crash when temporal types are used with ORDER BY clause. #299

Lab v1.3.5 - Nov 17, 2021

What's New

  • Add new Cypher stream keywords from Memgraph 2.1.0 release.

Bug Fixes

  • Fix the copy to the clipboard bug to keep new lines.

Lab v1.3.4 - Nov 15, 2021

What's New

  • Add quick connect for Memgraph running locally.
  • Add guides on how to install Memgraph locally.

Lab v1.3.3 - Oct 22, 2021

Bug Fixes

  • Fixed the action of exporting the database to a cypherl file.
  • Added support for the temporal types in query responses.

Memgraph v2.0.1 - Oct 12, 2021

Major Features and Improvements

  • Updated a startup message with a link to the getting started page. #259
  • Updated certain error and warning messages in the logs with links to the documentation explaining the problem in more detail. #243
  • Updated mgconsole to v1.1.0. #260

Bug Fixes

  • Graph updates made in the write procedures are now correctly registered in the triggers. #262
  • Fixed DETACH DELETE interaction with the triggers. Previously, vertices deleted by the DETACH DELETE would not be registered by triggers if only ON () DELETE trigger existed. #266

Memgraph v2.0.0 - Oct 5, 2021

Breaking Changes

  • Changed the timestamp() function to return microseconds instead of milliseconds.
  • Most of the query modules C API functions are changed to return a mgp_error as a more fine-grained way of error reporting. The only exceptions are the functions that free allocated memory (mgp_free and mgp_global_free) and destroy objects (mgp_value_destroy, mgp_list_destroy, etc.) which remain the same.
  • The first user created using the CREATE USER query will have all the privileges granted to him. Previously, you could’ve locked yourself out of Memgraph by creating a user and immediately disconnecting.

Major Features and Improvements

  • Added support for temporal types, a feature that allows the user to manipulate and store time related data in the graph. For more information take a look at the reference guide
  • Added support for parameters with CREATE clause in the following form: CREATE (n $param).
  • Introduced settings to Memgraph that can be modified during runtime. You can check out more details here.
  • Added writeable procedure support, so procedures can modify the graph by creating and deleting vertices and edges, modifying the labels of vertices or setting the properties of vertices and edges.

Bug Fixes

  • Fixed planning of queries with MERGE clause. If a previously defined symbol is used as property value inside the MERGE clause, the planner will correctly use the label-property index if present.
  • Unused memory is correctly returned to OS when FREE MEMORY query is used. Before, Memgraph would free up the memory internally and not return it to the OS. Because of that Memgraph could allocate more memory from the OS than it’s allowed.
  • Fixed recovery from durability files. Because of a wrong check, Memgraph could crash and leave the durability files in an invalid state making recovery not possible.
  • Fixed usage of execute keyword in queries. Because of the special way we handle the EXECUTE keyword from the CREATE TRIGGER query using that same keyword in other contexts caused Memgraph to crash.

Lab v1.3.2 - Oct 5, 2021

Bug Fixes

  • Fixed the copy to clipboard bug with removed spaces.
  • Updated the Cypher IntelliSense with the latest commands.

Lab v1.3.1 - Sep 27, 2021

Major Features and Improvements

  • Signed the Memgraph Lab applications for macOS and Windows.

Bug Fixes

  • Fixed the paste overwrite action in the query editor.
  • Fixed the bug Cannot read property 'class' of null.

Memgraph v1.6.1 - Jul 24, 2021

Major Features and Improvements

  • Added proper privilege checks for queries executed by triggers and stream transformations.

Bug Fixes

  • Fixed error handling in streams to make restarting streams possible after failing. The issue is caused by not rolling back the transaction in which the query failed, so when the stream was restarted and tried to process the next batch of messages it was still in a transaction, but it tried to start a new one. Now the transaction is rolled back in case of any errors during query execution, so a new transaction can be started during the processing of the next batch of messages.

Memgraph v1.6.0 - Jul 7, 2021

Breaking Changes

  • Changed the LOCK_PATH permission to DURABILITY.

Major Features and Improvements

  • Added support for consuming Kafka streams. You can connect Memgraph to a Kafka cluster and run queries based on the messages received. The transformation from Kafka to Cypher queries is done using Transformation Modules, a concept similar to Query Modules. Using our Python and C API, you can easily define functions that analyze Kafka messages and generate different queries based on them. The stream connection can be configured, tested, stopped, started, checked, and dropped.
  • Introduced global allocators for Query Modules using C API, so the data can be preserved between multiple runs of the same procedure.
  • Introduced new isolation levels, READ COMMITTED and READ_UNCOMMITTED. The isolation level can be set with a config. Also, you can set the isolation level for a certain session or the next transaction. The names of the isolation levels should be self-explanatory, unlike the SNAPSHOT ISOLATION which is still the default isolation level.
  • The query timeouts are now triggered using a different method. Before, we used the TSC to measure the execution time. Unfortunately, this proved unreliable for certain CPUs (AMD Ryzen 7 and M1), which caused queries to timeout almost instantly. We switched to POSIX timer which should work on every hardware, while not affecting the performance.
  • Added a config, allow-load-csv, with which you can disable LOAD CSV clause. LOAD CSV can read and display data from any file on the system which could be insecure for some systems. Because of that, we added a config that allows you to disable that clause in every case.
  • Added CREATE SNAPSHOT query. Snapshots are created every few minutes, using this query you can trigger snapshot creation instantly.
  • Increased the default query timeout to 10 minutes. The previous default amount of 3 minutes proved too small, especially for queries that use LOAD CSV with a large dataset.

Bug Fixes

  • Fixed parsing of certain types in Query Modules using Python API.
  • Fixed a concurrency bug for Query Modules using Python API. Running the same procedure from multiple clients caused the Memgraph instance to crash.
  • Fixed restoring triggers that call procedures. Because the triggers were restored before the procedures, the query trigger executes couldn’t find the called procedure, which caused the restore to fail. Switching up the order was enough to fix the problem.

Memgraph v1.5.0 - May 28, 2021

Major Features and Improvements

  • Added database triggers. You can now create, delete, and print out triggers that execute Cypher statements. You can create custom actions whenever a node or an edge is created, updated, or deleted. All the triggers are persisted on the disk, so no information is lost between runs.
  • Replaced mg_client with the mgconsole command-line interface, which ships directly with Memgraph. You can now install mgconsole directly on Windows and macOS.

Bug Fixes

  • Fixed parsing of types for Python procedures for types nested in mgp. List. For example, parsing of mgp.List[mgp.Map] works now.
  • Fixed memory tracking issues. Some of the allocation and deallocation wasn’t tracked during the query execution.
  • Fixed reading CSV files that are using CRLF as the newline symbol.
  • Fixed permission issues for LOAD CSV, FREE MEMORY, LOCK DATA DIRECTORY, and replication queries.

Memgraph v1.4.0 - Apr 2, 2021

Breaking Changes

  • Changed MEMORY LIMIT num (KB|MB) clause in the procedure calls to PROCEDURE MEMORY LIMIT num (KB|MB). The functionality is still the same.

Major Features and Improvements

  • Added replication to community version.
  • Added support for multiple query modules directories at the same time. You can now define multiple, comma-separated paths to directories from which the modules will be loaded using the --query-modules-directory flag.
  • Added support for programatically reading in data from CSV files through the LOAD CSV clause. We support CSV files with and without a header, the supported dialect being Excel.
  • Added a new flag --memory-limit which enables the user to set the maximum total amount of memory memgraph can allocate during its runtime.
  • Added FREE MEMORY query which tries to free unusued memory chunks in different parts of storage.
  • Added the memory limit and amount of currently allocated bytes in the result of SHOW STORAGE INFO query.
  • Added QUERY MEMORY LIMIT num (KB|MB) to Cypher queries which allows you to limit memory allocation for the entire query. It can be added only at the end of the entire Cypher query.
  • Added logs for the different parts of the recovery process. INFO, DEBUG and TRACE level all contain additional information that is printed out while the recovery is in progress.

Bug Fixes

  • Fixed garbage collector by correctly marking the oldest current timestamp after the database was recovered using the durability files.
  • Fixed reloading of the modules with changed result names.
  • Fixed profile query to show the correct name of the ScanAll operator variant.

Lab v1.3.0 - Feb 19, 2021

Major Features and Improvements

  • Added option to show predefined datasets with the ability to import them to Memgraph.
  • Added option to show sample query for every loaded predefined dataset.
  • Added import of custom Cypher file datasets (cypherl format).
  • Added export of current database state to Cypher file (cypherl format).
  • Added default node label in graph view if name property is missing.
  • Added default relationship type label in graph view for smaller graphs.

Bug Fixes and Other Changes

  • Fixed sidebar links in the browser Lab.
  • Fixed columns in favorite queries view.
  • Fixed showing large amounts of properties in a popup when viewing node details in the graph view.
  • Fixed the label in the popup when switching between edges and nodes in the graph view.
  • Fixed node count in the dashboard view.
  • Added descriptive and better error messages when connecting to Memgraph with encryption on/off.
  • Fixed the close button in a node popup in the graph view.
  • Fixed the spacing of the close button and relationship type in a relationship popup in the graph view.
  • Fixed storing physics and styles across multiple query runs.
  • Fixed initial positioning in graph view when running query in the data view.
  • Fixed graph view reset when a query on data view had no results to show.
  • Fixed map disappearing when running query multiple times in a row.
  • Fixed running multiple Lab instances of the application on Windows and Linux.
  • Fixed node size and spacing in graph view when showing smaller graphs.
  • Fixed transition state issues between graph view and data view.

Memgraph v1.3.0 - Jan 26, 2021

Breaking Changes

  • Added extra information in durability files to support replication, making it incompatible with the durability files generated by older versions of Memgraph. Even though the replication is an Enterprise feature, the files are compatible with the Community version.

Major Features and Improvements

  • Added support for data replication across a cluster of Memgraph instances. Supported instance types are MAIN and REPLICA. Supported replication modes are SYNC (all SYNC REPLICAS have to receive data before the MAIN can commit the transaction), ASYNC (MAIN doesn’t care if data is replicated), SYNC WITH TIMEOUT (MAIN will wait for REPLICAS within the given timeout period, after timout, replication isn’t aborted but the replication demotes the REPLICA to the ASYNC mode).
  • Added support for query type deduction. Possible query types are r (read), w (write), rw (read-write). The query type is returned as a part of the summary.
  • Improved logging capabilities by introducing granular logging levels. Added new flag, --log-level, which specifies the minimum log level that will be printed. E.g., it’s possible to print incoming queries or Bolt server states.
  • Added ability to lock the storage data directory by executing the LOCK DATA DIRECTORY query which delays the deletion of the files contained in the data directory. The data directory can be unlocked again by executing the UNLOCK DATA DIRECTORY query.

Lab v1.2.0 - Nov 3, 2020

Major Features and Improvements

  • Added ability to create custom graph styling for nodes and edges in graph view with graph style language (similar to CSS).
  • Added ability to save and load custom graph styling.
  • Added ability to show map background for nodes with lat and lng numeric properties.
  • Added ability to change map background style.
  • Removed edge labels to be shown by default in graph view.
  • Fixed overall UI and UX.
  • Set encrypted connection to be turned off by default on login screen (Memgraph v1.2.0 comes with SSL off by default).

Bug Fixes

  • Added ability to hide graph view if there are no node/edge data in response.

Memgraph v1.2.0 - Oct 20, 2020

Breaking Changes

  • SSL is disabled by default (--bolt-cert-file and --bolt-key-file are empty). This change might only affect the client connection configuration.

Major Features and Improvements

  • Added support for Bolt v4.0 and v4.1.
  • Added mgp_networkx.py as an alternative implementation of NetworkX graph objects, which is useful to use Memgraph data from NetworkX algorithms optimally.
  • Added nxalg.py query module as a proxy to NetworkX algorithms.
  • Added plan optimization to use a label-property index where the property is not null. As a result, the query engine, instead of scanning all elements and applying the filter, performs a label-property index lookup when possible.

Bug Fixes and Other Changes

  • Fixed Cypher ID function Null handling. When the ID function receives Null, it will also return Null.
  • Fixed bug that caused random crashes in SSL communication on platforms that use older versions of OpenSSL (< 1.1) by adding proper multi-threading handling.
  • Fix DISCARD message handling. The query is now executed before discarding the results.

Memgraph v1.1.0 - Jul 1, 2020

Major Features and Improvements

  • Properties in nodes and edges are now stored encoded and compressed. This change significantly reduces memory usage. Depending on the specific dataset, total memory usage can be reduced up to 50%.

  • Added support for rescanning query modules. Previously, the query modules directory was scanned only upon startup. Now it is scanned each time the user requests to load a query module. The functions used to load the query modules were renamed to mg.load() and mg.load_all() (from mg.reload() and mg.reload_all()).

  • Improved execution performance of queries that have an IN list filter by using label+property indexes. Example: MATCH (n: Label) WHERE n.property IN [] ...

  • Added support for ANY and NONE openCypher functions. Previously, only ALL and SINGLE functions were implemented.

Bug Fixes and Other Changes

  • Fixed invalid paths returned by variable expansion when the starting node and destination node used the same symbol. Example: MATCH path = (n: Person {name: "John"})-[: KNOWS*]->(n) RETURN path

  • Improved semantics of ALL and SINGLE functions to be consistent with openCypher when handling lists with Null s.

  • SHOW CONSTRAINT INFO now returns property names as a list for unique constraints.

  • Escaped label/property/edgetype names in DUMP DATABASE to support names with spaces in them.

  • Fixed handling of DUMP DATABASE queries in multi-command transactions ( BEGIN, …, COMMIT).

  • Fixed handling of various query types in explicit transactions. For example, constraints were allowed to be created in multi-command transactions (BEGIN , …, COMMIT) but that isn’t a transactional operation and as such can’t be allowed in multi-command transactions.

  • Fixed integer overflow bugs in COUNT, LIMIT and SKIP.

  • Fixed integer overflow bugs in weighted shortest path expansions.

  • Fixed various other integer overflow bugs in query execution.

  • Added Marvel Comic Universe tutorial.

  • Added FootballTransfers tutorial.

Lab v1.1.3 - Jun 5, 2020

Bug Fixes

  • Disable hardware acceleration.

Lab v1.1.2 - Apr 10, 2020

Bug Fixes

  • Fix side menu documentation and support links.

Memgraph v1.0.0 - Apr 3, 2020

Major Features and Improvements

  • [Enterprise Ed.] Exposed authentication username/rolename regex as a flag ( --auth-user-or-role-name-regex).
  • [Enterprise Ed.] Improved auth module error handling and added support for relative paths.
  • Added support for Python query modules. This release of Memgraph supports query modules written using the already existing C API and the new Python API.
  • Added support for unique constraints. The unique constraint is created with a label and one or more properties.
  • Implemented support for importing CSV files (mg_import_csv). The importer is compatible with the Neo4j batch CSV importer.
  • Snapshot and write-ahead log format changed (backward compatible with v0.50).
  • Vertices looked up by their openCypher ID (MATCH (n) WHERE ID(n) = ...) will now find the node in O(logn) instead of O(n).
  • Improved planning of BFS expansion, a faster, specific approach is now favored instead of a ScanAll+Filter operation.
  • Added syntax for limiting memory of CALL.
  • Exposed server name that should be used for Bolt handshake as flag ( --bolt-server-name-for-init).
  • Added several more functions to the query module C API.
  • Implemented a storage locking mechanism that prevents the user from concurrently starting two Memgraph instances with the same data directory.

Bug Fixes and Other Changes

  • [Enterprise Ed.] Fixed a bug that crashed the database when granting privileges to a user.
  • [Enterprise Ed.] Improved Louvain algorithm for community detection.
  • Type of variable expansion is now printed in EXPLAIN (e.g. ExpandVariable, STShortestPath, BFSExpand, WeightedShortestPath).
  • Correctly display CALL in EXPLAIN output.
  • Correctly delimit arguments when printing the signature of a query module.
  • Fixed a planning issue when CALL preceded filtering.
  • Fixed spelling mistakes in the storage durability module.
  • Fixed storage GC indexes/constraints subtle race condition.
  • Reduced memory allocations in storage API and indexes.
  • Memgraph version is now outputted to stdout when Memgraph is started.
  • Improved RPM packaging.
  • Reduced number of errors reported in production log when loading query modules.
  • Removed early access wording from the Community Offering license.

Lab v1.1.1 - Apr 3, 2020

Bug Fixes

  • Fix bug showing integers in node properties as strings.

Lab v1.1.0

Major Features and Improvements

  • Enable explain and profile view.
  • Memgraph v0.15.0 keywords support.

Bug Fixes and Other Changes

  • Fix bug with a new line in parsing multi-command queries.
  • On empty data for graph redirect to data view.

Lab v1.0.0

Major Features and Improvements

  • Added unsecure connection option.
  • Improved UX of login screen.
  • Added basic tutorial that shows on the initial run.
  • Added text search of history and favorite queries.
  • Added storage statistics on overview screen.
  • Added debug view with query explain and profile capabilities.
  • Added graph schema (metagraph) generator.
  • Improved query data (table) view.

Lab v0.1.2

Bug Fixes and Other Changes

  • Fixed app icon on MacOS.
  • Improved error handling on the initial connect screen. Handle availability and secure connection errors.

Lab v0.1.1

Major Features and Improvements

  • Added overview view.
  • Added query view (Monaco editor).
  • Added graph, data and table data views.
  • Added JSON export.
  • Added electron builder packages for MacOS and Debian.

Memgraph v0.50.0 - Dec 11, 2019

Breaking Changes

  • [Enterprise Ed.] Remove support for Kafka streams.
  • Snapshot and write-ahead log format changed (not backward compatible).
  • Removed support for unique constraints.
  • Label indexes aren’t created automatically, create them explicitly instead.
  • Renamed several database flags. Please see the configuration file for a list of current flags.

Major Features and Improvements

  • [Enterprise Ed.] Add support for auth module.
  • [Enterprise Ed.] LDAP support migrated to auth module.
  • Implemented new graph storage engine.
  • Add support for disabling properties on edges.
  • Add support for existence constraints.
  • Add support for custom openCypher procedures using a C API.
  • Support loading query modules implementing read-only procedures.
  • Add CALL <procedure> YIELD <result> syntax for invoking loaded procedures.
  • Add CREATE INDEX ON :Label for creating label indexes.
  • Add DROP INDEX ON :Label for dropping label indexes.
  • Add DUMP DATABASE clause to openCypher.
  • Add functions for treating character strings as byte strings.

Bug Fixes and Other Changes

  • Fix several memory management bugs.
  • Reduce memory usage in query execution.
  • Fix bug that crashes the database when EXPLAIN is used.

Memgraph v0.15.0 - Jul 17, 2019

Breaking Changes

  • Snapshot and write-ahead log format changed (not backward compatible).
  • indexInfo() function replaced with SHOW INDEX INFO syntax.
  • Removed support for unique index. Use unique constraints instead.
  • CREATE UNIQUE INDEX ON :label (property) replaced with CREATE CONSTRAINT ON (n:label) ASSERT n.property IS UNIQUE.
  • Changed semantics for COUNTER openCypher function.

Major Features and Improvements

  • [Enterprise Ed.] Add new privilege, STATS for accessing storage info.
  • [Enterprise Ed.] LDAP authentication and authorization support.
  • [Enterprise Ed.] Add audit logging feature.
  • Add multiple properties unique constraint which replace unique indexes.
  • Add SHOW STORAGE INFO feature.
  • Add PROFILE clause to openCypher.
  • Add CREATE CONSTRAINT clause to openCypher.
  • Add DROP CONSTRAINT clause to openCypher.
  • Add SHOW CONSTRAINT INFO feature.
  • Add uniformSample function to openCypher.
  • Add regex matching to openCypher.

Bug Fixes and Other Changes

  • Fix bug in query comment parsing.
  • Fix bug in query symbol table.
  • Fix OpenSSL memory leaks.
  • Make authentication case insensitive.
  • Remove COALESCE function.
  • Add movie tutorial.
  • Add backpacking tutorial.

Memgraph v0.14.1 - Jan 22, 2019

Bug Fixes and Other Changes

  • Fix bug in explicit transaction handling.
  • Fix bug in edge filtering by edge type and destination.

Memgraph v0.14.0 - Oct 30, 2018

Breaking Changes

  • Write-ahead log format changed (not backward compatible).

Major Features and Improvements

  • [Enterprise Ed.] Reduce memory usage in distributed usage.
  • Add DROP INDEX feature.
  • Improve SSL error messages.

Bug Fixes and Other Changes

  • [Enterprise Ed.] Fix issues with reading and writing in a distributed query.
  • Correctly handle an edge case with unique constraint checks.
  • Fix a minor issue with mg_import_csv.
  • Fix an issue with EXPLAIN.

Memgraph v0.13.0 - Oct 18, 2018

Breaking Changes

  • Write-ahead log format changed (not backward compatible).
  • Snapshot format changed (not backward compatible).

Major Features and Improvements

  • [Enterprise Ed.] Authentication and authorization support.
  • [Enterprise Ed.] Kafka integration.
  • [Enterprise Ed.] Support dynamic worker addition in distributed.
  • Reduce memory usage and improve overall performance.
  • Add CREATE UNIQUE INDEX clause to openCypher.
  • Add EXPLAIN clause to openCypher.
  • Add inDegree and outDegree functions to openCypher.
  • Improve BFS performance when both endpoints are known.
  • Add new node-label, relationship-type and quote options to mg_import_csv tool.
  • Reduce memory usage of mg_import_csv.

Bug Fixes and Other Changes

  • [Enterprise Ed.] Fix an edge case in distributed index creation.
  • [Enterprise Ed.] Fix issues with Cartesian in distributed queries.
  • Correctly handle large messages in Bolt protocol.
  • Fix issues when handling explicitly started transactions in queries.
  • Allow openCypher keywords to be used as variable names.
  • Revise and make user visible error messages consistent.
  • Improve aborting time consuming execution.

Memgraph v0.12.0 - Jul 4, 2018

Breaking Changes

  • Snapshot format changed (not backward compatible).

Major Features and Improvements

  • Improved Id Cypher function.
  • Added string functions to openCypher (lTrim, left, rTrim, replace, reverse, right, split, substring, toLower, toUpper, trim ).
  • Added timestamp function to openCypher.
  • Added support for dynamic property access with [] operator.

Memgraph v0.11.0 - Jun 20, 2018

Major Features and Improvements

  • [Enterprise Ed.] Improve Cartesian support in distributed queries.
  • [Enterprise Ed.] Improve distributed execution of BFS.
  • [Enterprise Ed.] Dynamic graph partitioner added.
  • Static nodes/edges id generators exposed through the Id Cypher function.
  • Properties on disk added.
  • Telemetry added.
  • SSL support added.
  • toString function added.

Bug Fixes and Other Changes

  • Document issues with Docker on OS X.
  • Add BFS and Dijkstra’s algorithm examples to documentation.

Memgraph v0.10.0 - Apr 24, 2018

Breaking Changes

  • Snapshot format changed (not backward compatible).

Major Features and Improvements

  • [Enterprise Ed.] Distributed storage and execution.
  • reduce and single functions added to openCypher.
  • wShortest edge expansion added to openCypher.
  • Support packaging RPM on CentOS 7.

Bug Fixes and Other Changes

  • Report an error if updating a deleted element.
  • Log an error if reading info on available memory fails.
  • Fix a bug when MATCH would stop matching if a result was empty, but later results still contain data to be matched. The simplest case of this was the query: UNWIND [1, 2, 3] AS x MATCH (n: Label {prop: x}) RETURN n. If there was no node (: Label {prop: 1}), then the MATCH wouldn’t even try to find for x being 2 or 3.
  • Report an error if trying to compare a property value with something that cannot be stored in a property.
  • Fix crashes in some obscure cases.
  • Commit log automatically garbage collected.
  • Add minor performance improvements.

Memgraph v0.9.0 - Dec 18, 2017

Breaking Changes

  • Snapshot format changed (not backward compatible).
  • Snapshot configuration flags changed, general durability flags added.

Major Features and Improvements

  • Write-ahead log added.
  • nodes and relationships functions added.
  • UNION and UNION ALL is implemented.
  • Concurrent index creation is now enabled.

Bug Fixes and Other Changes

Memgraph v0.8.0

Major Features and Improvements

  • CASE construct (without aggregations).
  • Named path support added.
  • Maps can now be stored as node/edge properties.
  • Map indexing supported.
  • rand function added.
  • assert function added.
  • counter and counterSet functions added.
  • indexInfo function added.
  • collect aggregation now supports Map collection.
  • Changed the BFS syntax.

Bug Fixes and Other Changes

  • Use \u to specify 4 digit codepoint and \U for 8 digit
  • Keywords appearing in header (named expressions) keep original case.
  • Our Bolt protocol implementation is now completely compatible with the protocol version 1 specification. (https://boltprotocol.org/v1/)
  • Added a log warning when running out of memory and the memory_warning_threshold flag
  • Edges are no longer additionally filtered after expansion.

Memgraph v0.7.0

Major Features and Improvements

  • Variable length path MATCH.
  • Explicitly started transactions (multi-query transactions).
  • Map literal.
  • Query parameters (except for parameters in place of property maps).
  • all function in openCypher.
  • degree function in openCypher.
  • User specified transaction execution timeout.

Bug Fixes and Other Changes

  • Concurrent BUILD INDEX deadlock now returns an error to the client.
  • A MATCH preceded by OPTIONAL MATCH expansion inconsistencies.
  • High concurrency Antlr parsing bug.
  • Indexing improvements.
  • Query stripping and caching speedups.

Memgraph v0.6.0

Major Features and Improvements

  • AST caching.
  • Label + property index support.
  • Different logging setup & format.

Memgraph v0.5.0

Major Features and Improvements

  • Use label indexes to speed up querying.
  • Generate multiple query plans and use the cost estimator to select the best.
  • Snapshots & Recovery.
  • Abandon old yaml configuration and migrate to gflags.
  • Query stripping & AST caching support.

Bug Fixes and Other Changes

  • Fixed race condition in MVCC. Hints exp+aborted race condition prevented.
  • Fixed conceptual bug in MVCC GC. Evaluate old records w.r.t. the oldest. transaction’s id AND snapshot.
  • User friendly error messages thrown from the query engine.

Build 837

Bug Fixes and Other Changes

  • List indexing supported with preceeding IN (for example in query RETURN 1 IN [[1, 2]][0]).

Build 825

Major Features and Improvements

  • RETURN , count(), OPTIONAL MATCH, UNWIND, DISTINCT (except DISTINCT in aggregate functions), list indexing and slicing, escaped labels, IN LIST operator, range function.

Bug Fixes and Other Changes

  • TCP_NODELAY -> import should be faster.
  • Clear hint bits.

Build 783

Major Features and Improvements

  • SKIP, LIMIT, ORDER BY.
  • Math functions.
  • Initial support for MERGE clause.

Bug Fixes and Other Changes

  • Unhandled Lock Timeout Exception.