Open-source graph database, tuned for dynamic analytics environments. Easy to adopt, scale and own.
--storage-mode
configuration flag.SHOW STORAGE INFO;
query now returns memory allocations in B, KiB, MiB, GiB or TiB, rather than just B to make the information easily readable.#1366
ANALYZE GRAPH;
is now persistent between instance reruns. #1281
SHOW INDEX INFO;
now also returns the information about the number of assigned indexes. #1229
keys()
and values()
functions to get a list of keys and values of a map.#1246
schema
procedures to get information about nodes and
relationships or convert.str2object()
function to convert strings to objects using Python's json.dumps
function. #1384
path.Pop()
, C API using mgp_path_pop
and Python API using path.pop()
. #1249
KeyExists
function that checks the existance of a key in a map has been added to the C++ API.#1336
mgp::Graph::ChangeType
in C++ API and mgp::graph_edge_change_type
in C API.
#1364
EXPLAIN
and PROFILE
clauses now provides information about the operands of the Filter
operator. #1265
MATCH
clauses and the results are joined in aWHERE
clause now execute more efficiently, due to the to the new HashJoin
operator. #1226
DISTINCT
clause no longer influences other aggregates, that is, shows distinct values as exepcted. #1235
SHOW CONFIG;
query now shows the correct values for the configuration settings, even if they were changed during runtime. #1278
--memory-limit
config flag, Memgraph now stops the transactions exceeding the limit as expected. #1250 #1340
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
--bolt-server-name-for-init
is now Neo4j/v5.11.0 compatible graph database server - Memgraph
. #1183
--delta-chain-cache-threshold
configuration flag.
#1124
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
id
. #1147
UNWIND RANGE (1, 500) AS i CREATE ();
MATCH (),(),() RETURN COUNT(*);
#1127
ToString()
method on mgp::Value
and Memgraph's data
types when writing query modules using C++
API.
#1140
In
and
Out
degrees of a node in O(1) time complexity. #1217
mgp::Graph.SetFrom
and mgp::Graph.SetTo
methods.SHOW INDEX INFO
now displays index information in alphabetic order for
easier orientation. #1178
DETACH DELETE
query has been improved.
#1078
PROFILE
query now generates a table with operators in the same order as
in the plan constructed with the EXPLAIN
query.
#1024
READ ONLY VERTEX MODE;
.
#1157.std::set of values
(find unique
values) by iterating over mgp::List
as expected, and successfully perform
any other operations dependent on the STL container requirements.
#1210
mgp::DispatcherGuard
also works as expected now.
#1225
MATCH (n) SET n += {prop1:1, prop2:2, ...};
#1115
--delta-chain-cache-threshold
. #1124
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
storage-recover-on-startup
has been deprecated and replaced with data_recovery_on_startup
to support multi-tenancy. The storage-recover-on-startup
can still be used until the next release planned for mid-September.query-callable-mappings-path
configuration flag. #1018
mgp::Any
datatype into Record. #1094
mgp::Value
variables with the <
operator. #1090
mgp::Type
enumeration using the <<
operator. For example, if you have a mgp::List
list, cout<< list <<endl
will output "list"
. #1080
mgp::Value
variables (except mgp::Path
, mgp::List
and mgp::Map
types) using the <<
operator. #1127
mgp::Value
variables and all its subtypes (mgp::Map
, mgp::Path
, ...) inside hash structures such as std::unordered_map
and std::unordered_set
. #1093
mgp::Map.Update(key, &value)
, mgp::Map.Update(key, &&value)
and mgp::Map.Erase(key)
functions. #1103
RemoveProperty()
function and labels with RemoveLabel()
function. #1128 #1126
mgp::Value
wrapper for Memgraph's data types has been extended to return subtypes which are modifiable (non-const). #1099
NOTE: In order to enable the REPLICA instances to restart and continue their role in the replication cluster without disconnecting from it, Memgraph 2.9 introduced a new configuration flag --replication-restore-state-on-startup
which is false
by default. Using this configuration flag you decided whether any instance, MAIN or REPLICA, will regain their previous role in the replication cluster. If your current project is using replication and you do not introduce this configuration flag set to true
on MAIN instances, upon restart they will be disconnected from their replication clusters. By setting this configuration flag to true
on REPLICA instances, upon restart REPLICAs will remember their role and configuration in a replication cluster.
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
gzip
or bzip2
algorithms. #1027
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
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
SHOW TRANSACTIONS;
query. #945
ANALYZE GRAPH;
query now includes information about the degree of all nodes to enhance the MERGE optimizations on supernodes. #1026
--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
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
DATA DIRECTORY LOCK STATUS;
query. #933
SHOW STORAGE INFO;
query. #883
SHOW BUILD INFO;
query. #894
PoolResource
memory allocator. #898
STORAGE MODE IN_MEMORY_{TRANSACTIONAL|ANALYTICAL};
query. #772
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
TERMINATE TRANSACTIONS tid;
query; Find out the
transaction ID with SHOW TRANSACTIONS;
query. #790
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
exists()
function allows using patterns as part of the filtering clause. Check the Cypher Manual for usage. #818
torch
and igraph
can no longer be removed from the svs.modules
cache to avoid issues after reload. #720
LOAD CSV
clause now uses less RAM to load a whole CSV
file. #712
read_write_type_checker
logic correction so queries have the right rw_type
, which was a blocker for use on replicas. #709
qid
now available in transactions as part of metadata. #721