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 (opens in a new tab) 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Updated librdkafka to v2.6.1. You can expect better stability on the Kafka streaming side. #2523 (opens in a new tab)

🐞 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Fixed the incorrect management of the delta counter metric after the abort. SHOW STORAGE INFO under unreleased_delta_objects should be better now. #2544 (opens in a new tab)
  • 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 (opens in a new tab) and #2535 (opens in a new tab)
  • Fixed issue with list pattern pattern comprehension under arbitrary expression. List pattern comprehension is only allowed under WITH and RETURN clauses. #2534 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Fixed how metrics keyword was added to the grammar. The keyword couldn't be used as a variable name. #2502 (opens in a new tab)

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 (opens in a new tab)
  • any(v IN [] WHERE v) was returning Null; since this release, it returns False. #2489 (opens in a new tab)
  • 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 (opens in a new tab)

✨ 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Added IsEmpty function that accepts Null (IsEmpty(Null) returns Null), List, Map, String and returns Boolean value. #2489 (opens in a new tab)

🛠️ 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 (opens in a new tab)
  • 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 (opens in a new tab)

🐞 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 (opens in a new tab)
  • 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 (opens in a new tab)

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

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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

Bug fixes

  • Closing instance would crash due to streams and/or TTL running in the background. #2361 (opens in a new tab)
  • Add backticks around property keys in any {key: value} patterns. #2371 (opens in a new tab)
  • When replica gets promoted to main upon failover, it will use correctly incremented durable timestamp. #2366 (opens in a new tab)
  • schema.assert will throw an exception if ran inside the explicit transaction. #2352 (opens in a new tab)
  • 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 (opens in a new tab). #2424 (opens in a new tab)
  • Fixed incorrect usage of cv and stop token in scheduler and thread pool. #2452 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Removed usage of RTLD_DEEPBIND under query modules. Query modules, especially the Python ones should work better in terms of correct module loading. #2347 (opens in a new tab)

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 (opens in a new tab) (GH issues labeled with jepsen).

  • All data instances now use one type of callbacks to simplify state reconciliation. #2421 (opens in a new tab)
  • Incomplete storage reset when MAIN force reset or applied snapshots to REPLICA. #2422 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)
  • Replica will now take MAIN's uuid only when REPLICA's current sequence number is 0. #2388 (opens in a new tab)
  • Eliminated deadlock caused by concurrent calls to Stop method on the Scheduler. Eliminated deadlock caused by calling Pause after Stop from different threads. #2398 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Closing instance no longer crashes due to streams and/or TTL running in the background. #2361 (opens in a new tab)

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

Bug fixes

Memgraph v2.19.0 - Aug 14, 2024

Breaking changes

New features and improvements

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • Leadership now expires as it was intended, before the election period starts. #2224 (opens in a new tab)

  • Fixed a bug where no default database was selected when MG_ENTERPRISE=OFF. #2267 (opens in a new tab)

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

  • 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 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)

New features and improvements

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • C and C++ query modules are a lot faster now and no longer slow down when ran concurrently. #2176 (opens in a new tab)

  • Correctly handle memory limits when triggered by allocations in third-party code. #2191 (opens in a new tab)

  • Fixed the enums dump function to correctly print all enum values. #2168 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab) (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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • A new flag, --nuraft-log-file, has been added to explicitly manage logs coming from NuRaft. #2084 (opens in a new tab)

  • 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 (opens in a new tab)

  • Validation added for the experimental-enabled flag. Users can now view logs detailing which experimental features are enabled. #2106 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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

  • 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 (opens in a new tab)

  • Add support for edge type property index. #1964 (opens in a new tab)

  • Added functionality that allows each user to change their own password. #2097 (opens in a new tab)

  • Removed support for Amazon Linux 2, CentOS 7 and Red Hat 7 Linux distributions. #2165 (opens in a new tab)

Bug fixes

  • Metrics can now be fetched via the HTTP server during runtime if a Memgraph Enterprise license is enabled. #2067 (opens in a new tab)

  • Removed redundant duplicate label filtering. #2114 (opens in a new tab)

  • 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 (opens in a new tab)

  • Resolved an issue where constants were incorrectly used as grouping keys in aggregation queries. #2095 (opens in a new tab)

  • Resolved an issue where the routing table request logic inaccurately identified the MAIN instance when the previous MAIN was not operational. #2133 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab)

  • The replication stream is now handled as a local variable for transactions, preventing assertion failures during recovery. #2018 (opens in a new tab)

  • Implemented changes to discard leadership requests on follower instances. This update ensures that followers no longer accept user actions intended for the leader. #1932 (opens in a new tab)

  • Fixed a NuRaft launcher race condition. The raft server is now considered successfully created once it behaves as a leader. #2040 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab) #1976 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • Fixed the DNS resolution capability for endpoint parsing. This update resolves issues with DNS resolution when registering replicas and/or coordinator instances. #2004 (opens in a new tab)

  • 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 (opens in a new tab)

Memgraph v2.16.0 - Apr 10, 2024

New features and improvements

Bug fixes

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 (opens in a new tab)

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

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 (opens in a new tab)

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

  • The process of demoting old MAIN to REPLICA should eventually succeed fully without any issues. #1711 (opens in a new tab)

  • The coordinator now aligns REPLICA to consistently listen to the correct MAIN. #1711 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • [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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

  • Added coordinator instance for managing HA cluster. For more details, refer to the High availability documentation. #1608 (opens in a new tab)

  • 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 (opens in a new tab)

  • Added automatic failover from a single coordinator. For more details refer to High availability documentation. #1646 (opens in a new tab)

  • Added flags --raft-server-id and --raft-server-port for creating coordinators. For more details, refer to the High availability documentation. #1687 (opens in a new tab)

  • 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 (opens in a new tab)
    • Introduced multi-tenancy and system information to SHOW REPLICAS. #1735 (opens in a new tab)

Bug fixes

  • Fixed an issue with the memory tracker not accurately counting memory usage after exceeding the memory limit. #1651 (opens in a new tab)

  • Resolved an issue that led to a crash when an unbound variable was used inside a subquery. #1710 (opens in a new tab)

  • Fixed deadlocks in jemalloc caused by the memory tracker. #1715 (opens in a new tab)

  • 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 (opens in a new tab)

MAGE v1.15.0 - Feb 28, 2024

Bug fixes

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 (opens in a new tab)

Memgraph v2.14.0 - Jan 22, 2024

New features and improvements

Bug fixes

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

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

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

Bug fixes

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

Bug fixes

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 (opens in a new tab) #371 (opens in a new tab) #356 (opens in a new tab)
  • With the new merge query module you can merge or create nodes and relationships as per specified conditions, with more percision and coherence. #390 (opens in a new tab)
  • The node query module now has procedures that return the in and out degrees of a node. #369 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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

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 (opens in a new tab)

  • 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 (opens in a new tab).

  • 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 (opens in a new tab)

  • The default value of --bolt-server-name-for-init is now Neo4j/v5.11.0 compatible graph database server - Memgraph. #1183 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab) #1142 (opens in a new tab)
    • Queries that build maps with multiple same-variable property lookups have been optimized. #1168 (opens in a new tab)
    • 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 (opens in a new tab)
    • Setting properties is also improved by caching mappings of property name to internal property id. #1147 (opens in a new tab)
    • Performance has been improved for concurrent operations contending on the same node. #1187 (opens in a new tab)
    • 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 (opens in a new tab)
    • 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 (opens in a new tab)
    • 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 (opens in a new tab)
    • The performance of DETACH DELETE query has been improved. #1078 (opens in a new tab)
  • When developing custom query modules, node and relationship properties can now be changed in bulk, rather than one by one. #1131 (opens in a new tab)

  • 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 (opens in a new tab)
    • Trigger functions can now access deleted vertices from deleted edge when processed. #1209 (opens in a new tab)
    • 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 (opens in a new tab)
    • 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 (opens in a new tab)

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

  • Certain queries execute faster due to the usage of custom allocators for Delta objects. #1129 (opens in a new tab)

Bug fixes

  • Setting a property of a node labeled null will no longer crash the database, but return an exception. #1175 (opens in a new tab)

MAGE v1.11.0. - Sep 13, 2023

New features and improvements

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 (opens in a new tab)
  • Improved performance on batch update of properties, e.g., MATCH (n) SET n += {prop1:1, prop2:2, ...}; #1115 (opens in a new tab)
  • 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 (opens in a new tab).

Bug fixes

MAGE v1.10.0 - Aug 23, 2023

Features and improvements

Bug Fixes

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 (opens in a new tab)

  • 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 (opens in a new tab)

  • 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 (opens in a new tab)

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

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 (opens in a new tab)

  • 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 (opens in a new tab)

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

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

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

  • Memgraph supports transaction timeouts defined by the Bolt protocol if the connection to the database is established via the JavaScript client. #1046 (opens in a new tab)

  • Queries exploring all shortest paths now use considerably less memory without significant performance deterioration. #981 (opens in a new tab)

  • 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 (opens in a new tab)

Bug fixes

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

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 (opens in a new tab)
  • Memgraph now works with all Bolt v5.2 drivers. #938 (opens in a new tab)
  • 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 (opens in a new tab)
    • 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 (opens in a new tab)
    • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • You can now create custom batch procedures in Python and C++ that process data in batches, thus consuming less memory. #964 (opens in a new tab)
  • The ANALYZE GRAPH; query now includes information about the degree of all nodes to enhance the MERGE optimizations on supernodes. #1026 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)
  • The IN_MEMORY_ANALYTICAL storage mode now deallocates memory as expected and no longer consumes memory excessively. #1025 (opens in a new tab)
  • When no values are returned from a map, a null is returned instead of an exception occurring. #1039 (opens in a new tab)

MAGE v1.8.0 - Jul 21, 2023

Features and improvements

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

Bug fixes

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 (opens in a new tab). 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 (opens in a new tab)
  • You can now call subqueries inside existing queries using the CALL clause. #794 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)
  • Similarity algorithms (jaccard, overlap and cosine) have been rewritten in C++ to improve performance. #196 (opens in a new tab)

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

Bug fixes

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

MAGE v1.6.0 - Jan 30, 2023

Major Features and Improvements

Memgraph v2.5.2 - Jan 26, 2023

Bug Fixes

MAGE v1.5.1 - Jan 20, 2023

Major Features and Improvements

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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Bolt protocol has been improved by adding the server-assigned query ID (qid) as part of the transactions' metadata. #721 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)
  • C++ API is now aligned with Memgraph 2.5 #184 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)

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 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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 (opens in a new tab)
  • Error message support (SetErrorMessage) has been added to query methods that use the MAGE C++ API. #688 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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

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 (opens in a new tab)

Memgraph v2.4.2 - Nov 7, 2022

Bug Fixes

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

Bug Fixes

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 (opens in a new tab)
  • Fix a bug when changing role permissions for label based authorization, by passing user's instead of role's fine_grained_access_handler. #579 (opens in a new tab)

Memgraph v2.4.0 - Sep 15, 2022

Major Features and Improvements

  • Add replica state to SHOW REPLICAS query. #379 (opens in a new tab)
  • Add current_timestamp and number_of_timestamp_behind_master to SHOW REPLICAS query. #412 (opens in a new tab)
  • 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 (opens in a new tab)
  • Make behavior more openCypher (opens in a new tab) compliant regarding checking against NULL values is CASE expressions. #432 (opens in a new tab)
  • Previously registered replicas are automatically registered on restart of Memgraph. #415 (opens in a new tab)
  • Add new command SHOW CONFIG that returns the configuration of the currently running Memgraph instance. #459 (opens in a new tab)
  • Extend the shortest paths functionality with All Shortest Path query. #409 (opens in a new tab)
  • Extend the query modules C and Python API to enable logging on different levels. #417 (opens in a new tab)
  • Added C++ query modules API. Instead of using the C API call, C++ API calls significantly simplify the implementation of fast query modules. #546 (opens in a new tab)
  • [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 (opens in a new tab)
  • 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 (opens in a new tab)

Bug Fixes

  • Added a check to ensure two replicas cannot be registered to an identical end-point. #406 (opens in a new tab)
  • toString function is now able to accept Date, LocalTime, LocalDateTime and Duration data types. #429 (opens in a new tab)
  • Aggregation functions now return the openCypher-compliant results on null input and display the correct behavior when grouped with other operators. #448 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

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

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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Added BATCH_LIMIT and TIMEOUT options to START STREAM query that returns the raw message received by the transformation. #392 (opens in a new tab)

Bug Fixes

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

Bug Fixes

Memgraph v2.3.0 - Apr 27, 2022

Major Features and Improvements

Bug Fixes

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

Bug Fixes

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 (opens in a new tab)

Memgraph v2.2.0 - Feb 18, 2022

Major Features and Improvements

Bug Fixes

  • The reference count is increased when Py_None is returned from the _mgp module. This fixes a nondeterministic fatal Python error. #320 (opens in a new tab)
  • Use correct error when printing warning in rebalance callback of Kafka consumer. #321 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)

MAGE v1.1.0 - Dec 13, 2021

Major Features and Improvements

Bug Fixes

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 (opens in a new tab)
  • SHOW STREAMS now returns default values for batch interval and batch size if they weren't specified. #306 (opens in a new tab)

Bug Fixes

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

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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Added procedure to configure the starting offset (to consume messages from) of a topic (and its partitions). #282 (opens in a new tab)
  • Added BOOTSTRAP_SERVERS option to CREATE KAFKA STREAM which you can check here. #282 (opens in a new tab)
  • 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 (opens in a new tab)
  • 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 (opens in a new tab)
  • Added support for connecting to Pulsar as a new stream source. For more details, check out our reference pages. #293 (opens in a new tab)

Bug Fixes

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

Bug Fixes

  • Graph updates made in the write procedures are now correctly registered in the triggers. #262 (opens in a new tab)
  • 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 (opens in a new tab)

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/ (opens in a new tab))
  • 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.