Andi
de9280b334
Refactor disk storage ( #1347 )
2023-10-16 09:11:07 +02:00
Andi
1a3c5af797
Improve expansions on disk ( #1335 )
...
* Improve disk expansions
2023-10-11 10:18:50 +02:00
Gareth Andrew Lloyd
d278a33f31
Decouple pure replication state from storage [part 1] ( #1325 )
...
A major refactor to decouple replication state from storage.
ATM it is still owned by storage but a following part should fix that.
2023-10-10 11:44:19 +01:00
Gareth Andrew Lloyd
3cc2bc2791
Refactor interpreter to support multiple distributed clocks (Part 1) ( #1281 )
...
* Interpreter transaction ID decoupled from storage transaction ID
* Transactional scope for indices, statistics and constraints
* Storage::Accessor now has 2 modes (unique and shared)
* Introduced ResourceLock to fix pthread mutex problems
* Split InfoQuery in two: non-transactional SystemInfoQuery and transactional DatabaseInfoQuery
* Replicable and durable statistics
* Bumped WAL/Snapshot versions
* Initial implementation of the Lamport clock
---------
Co-authored-by: Andreja Tonev <andreja.tonev@memgraph.io>
2023-10-05 16:58:39 +02:00
Andi
1553fcb958
Improve deserialization performance
...
* Change std::stoull to std::from_chars
---------
Co-authored-by: Aidar Samerkhanov <aidar.samerkhanov@memgraph.io>
2023-09-20 14:25:17 +02:00
andrejtonev
bce48361ca
Decoupling Interpreter from Storage ( #1186 )
...
Unique/global InterpreterContext that is Storage agnostic (has a reference to the DbmsHandler instead)
* InterpreterContext is no longer the owner of Storage
* New Database structure that handles Storage, Triggers, Streams
* Renamed SessinContextHandler to DbmsHandler and simplified the multi-tenant logic
* Added Gatekeeper and updated handlers to use it
---------
Co-authored-by: Gareth Lloyd <gareth.lloyd@memgraph.io>
2023-09-20 13:13:54 +02:00
andrejtonev
5e5f4ffc5d
Add more runtime configurable settings ( #1183 )
...
server name, query timeout settings, log.level, log.to_stderr
2023-09-11 11:30:54 -04:00
Ante Pušić
060b9d1c16
[master < T1204] Add detailed operator info to PROFILE and EXPLAIN ( #1204 )
2023-09-11 14:34:27 +02:00
Antonio Filipovic
b6b32bec03
Improve performance of delta creation ( #1129 )
2023-09-06 11:30:21 +02:00
Andi
b5413c6f82
Add edge import mode into the on-disk storage ( #1157 )
2023-09-05 19:00:53 +02:00
Gareth Andrew Lloyd
9661c52179
Introduce a reader writer spin lock ( #1187 )
...
It is possible for multiple read only queries to be accessing the same
sequence of vertices/edges. The reader mode of the spin lock will ensure
multiple threads can make progress at the same time.
2023-09-01 14:21:15 +01:00
Aidar Samerkhanov
5f509532f2
Add timestamp to DELETE_DESERIALIZED_OBJECT delta at which this object was created. ( #1179 )
...
Add timestamp to DELETE_DESERIALIZED_OBJECT delta at which this object was created.
RocksDB currently doesn't provide timestamp() functionality in iterators of TransationDB.
Because of that we are using constant "0" timestamp for DELETE_DESERIALIZED_OBJECT.
2023-08-28 10:56:17 +04:00
Gareth Andrew Lloyd
adb65b2fff
Refactor memgraph.cpp ( #1164 )
2023-08-18 18:23:15 +02:00
Aidar Samerkhanov
3bf2cf65ab
Optimize splitting keys inside the on-disk storage ( #1155 )
2023-08-17 18:09:21 +02:00
Gareth Andrew Lloyd
2e51e703c3
Add supernode vertex cache ( #1124 )
...
Add supernode vertex cache to account for long delta chains and modifications in the same module being independent of scanning of the nodes in the next iteration of the pulling mechanism.
2023-08-11 10:18:28 +02:00
Andi
adf7533751
Optimize import of edges on disk ( #1132 )
2023-08-10 11:53:07 +02:00
Aidar Samerkhanov
1fe2190747
Filter deleted edges during edge prefetch ( #1145 )
2023-08-09 13:56:34 +02:00
andrejtonev
e8850549d2
Add multi-tenancy v1 ( #952 )
...
* Decouple BoltSession and communication::bolt::Session
* Add CREATE/USE/DROP DATABASE
* Add SHOW DATABASES
* Cover WebSocket session
* Simple session safety implemented via RWLock
* Storage symlinks for backward. compatibility
* Extend the audit log with the DB info
* Add auth part
* Add tenant recovery
2023-08-01 18:49:11 +02:00
gvolfing
210bea83d4
Add GraphQL transpilation compatibility ( #1018 )
...
* Add callable mappings feature
* Implement mgps.validate (void procedure)
* Make '_' a valid variable name
2023-07-31 14:48:12 +02:00
Josh Soref
57fe3463f2
Fix a bunch of spelling mistakes (1/n) ( #1112 )
2023-07-30 14:05:05 +02:00
Marko Budiselić
9d056e7649
Add experimental/v1 of ON_DISK_TRANSACTIONAL storage ( #850 )
...
Co-authored-by: Andi Skrgat <andi8647@gmail.com>
Co-authored-by: Aidar Samerkhanov <aidar.samerkhanov@memgraph.io>
2023-06-29 11:44:55 +02:00
Gareth Andrew Lloyd
3b781bf525
Add HTTP+GZIP support to LOAD CSV ( #1027 )
2023-06-26 19:10:48 +02:00
Gareth Andrew Lloyd
5b1ba10183
Fix IN_MEMORY_ANALYTICAL storage GC ( #1025 )
2023-06-23 12:50:03 +02:00
Ante Javor
0ea96663ba
Add check for opening snapshots ( #966 )
2023-06-22 13:29:49 +02:00
Josipmrden
b875649270
Add restoring of replication roles upon database startup ( #791 )
...
Fix replica node restoration on startup so it is restored as replica and not as main.
2023-06-21 19:08:58 +02:00
Josipmrden
63f8298033
Fix MATCH + LOAD CSV to load CSV only once ( #916 )
...
* update profile query to use poolresource
* Optimize update of indexes
* Add ignore empty strings to load csv
* Add operator changes to support handling of nulls
* Store chunks in memory pools ordered
* Use same max block per chunks number
* Remove redundant return statement
* add hacky cached solution
* change map to set
* remove memory
* Add match load csv invalid behaviour commit
* Accept input on LOAD CSV
* Ommit changes not tied to the PR
* Add tests for match + load csv
* Add gqlalchemy installation for e2e tests
* Modify setup script to update packages
* Revert gqlalchemy to 1.3.3
* Revert gqlalchemy to 1.3.3
* Address PR review comments
* Ommit semicolon
---------
Co-authored-by: antoniofilipovic <filipovicantonio1998@gmail.com>
Co-authored-by: János Benjamin Antal <benjamin.antal@memgraph.io>
2023-06-21 11:13:40 +02:00
Antonio Filipovic
d917c3f0fd
Fix slow IN LIST evaluation ( #901 )
2023-05-29 17:52:20 +02:00
Josipmrden
651b6f3a5a
Expose system metrics over HTTP Endpoint ( #940 )
2023-05-18 05:10:57 +00:00
Ante Pušić
0d9bd74a8a
Add support for map projection ( #892 )
2023-05-16 20:05:35 +02:00
andrejtonev
802f8aceda
Add data directory status and (un)lock query ( #933 )
2023-05-16 18:36:04 +02:00
gvolfing
7ddce539fa
Add return build type command ( #894 )
2023-05-16 16:02:03 +02:00
János Benjamin Antal
3a5f140c2b
Order chunks in utils::Pool
to speed up deallocation ( #898 )
2023-05-02 13:08:20 +02:00
János Benjamin Antal
97e250129e
Change AccumulateCursor
to use utils::pmr::deque
( #888 )
...
* Increase performance by eliminating unnecessary `TypedValue` copies
2023-04-24 16:22:22 +02:00
Antonio Filipovic
64e837b355
Introduce analytics mode ( #772 )
2023-04-04 18:46:26 +02:00
Josipmrden
128771a6ec
Add SHA-256 password encryption ( #839 )
2023-04-03 16:29:21 +02:00
Josipmrden
f5a49ed29f
Add Cypher subqueries ( #794 ) ( #851 )
...
Co-authored-by: Bruno Sačarić <bruno.sacaric@gmail.com>
2023-03-31 13:49:10 +00:00
Josipmrden
398503da7a
Add index statistics for better query planning ( #812 )
2023-03-30 15:34:34 +02:00
Andi
029be10f1d
Add queries to show or terminate active transactions ( #790 )
2023-03-27 15:46:00 +02:00
Jure Bajic
c4167bafdd
Add support for Amazon Linux 2 and stop generating C++ using Lisp/LCP ( #814 )
2023-03-14 19:24:55 +01:00
Josipmrden
6abd356d01
[master < E214] WHERE Exists feature ( #818 )
...
Add WHERE exists() to filter based on neighbouring pattern expressions
2023-03-07 00:28:41 +01:00
Antonio Filipovic
e5e37bc14a
Fix LOAD CSV large memory usage ( #712 )
2022-12-22 19:38:48 +01:00
Andi
0f77c85824
Fix cursor exhaustion by adding EmptyResult operator ( #667 )
2022-12-09 11:44:07 +01:00
Jure Bajic
ff21c0705c
Add multiple license support ( #618 )
...
Make license info available through LicenseChecker
Add LicenseInfoSender
Move license library from utils
Rename telemetry_lib to mg-telemetry
2022-11-04 15:23:43 +01:00
gvolfing
7fc0fb6520
Implement ToString function for temporal datatypes ( #429 )
...
* Modify `toString` to be able to handle `Date`, `LocalTime`, `LocalDateTime` and `Duration`
* Add unit tests
* Make `operator<<` use the `ToString()` implementations
* Add tests to verify the correctness of negative durations
* Add more tests to look for cases when the individual duration entities overflow.
2022-07-11 13:44:27 +02:00
Kostas Kyrimis
7a2bbd4bb3
Remove ref from std::string_view ( #215 )
2022-06-21 17:18:43 +03:00
Kostas Kyrimis
ea2806bd57
Implement foreach clause ( #351 )
2022-04-11 13:55:34 +03:00
János Benjamin Antal
537855a0b2
Fix usages of constexpr ( #367 )
...
* Fix usages of constexpr
2022-03-31 13:52:43 +02:00
jbajic
60ad05acff
Address review comments
2022-03-14 15:47:41 +01:00
jbajic
12b4ec1589
Add memgraph namespace
2022-03-14 15:47:41 +01:00
Kostas Kyrimis
4fd8bdce4c
Make temporal types now functions use the query context timestamp ( #333 )
2022-02-04 12:57:38 +01:00
Antonio Andelic
265b203b00
Build for ARM64 ( #340 )
2022-02-03 13:03:35 +01:00
Antonio Andelic
bb1308acc7
Use libs from toolchain ( #326 )
2022-01-21 10:22:36 +01:00
Antonio Andelic
8716b8e992
Update to newest spdlog and fmt ( #309 )
2021-12-07 11:05:33 +01:00
Antonio Andelic
b66cc66503
Add support for Pulsar queries ( #292 )
2021-11-16 15:52:58 +01:00
Kostas Kyrimis
95dd3481c0
Add more information to the MG_ASSERT in release mode ( #291 )
2021-11-12 09:09:15 +01:00
Kostas Kyrimis
636c551047
Remove linter concurrency-mt ( #287 )
2021-11-02 09:19:41 +01:00
Antonio Andelic
4e7ea34ae9
Add message with link utility ( #243 )
2021-10-07 14:51:30 +02:00
Jure Bajic
9e678f8cbe
Add new memgraph licenses and move third party licenses ( #248 )
2021-10-03 12:26:48 +02:00
Kostas Kyrimis
d04e23805d
Address temporal type epic comments ( #249 )
2021-10-02 18:48:50 +02:00
Kostas Kyrimis
7e82cc6550
Add uniform naming for temporal type properties ( #246 )
2021-10-02 16:14:27 +02:00
Kostas Kyrimis
18b801a722
Add e2e tests for temporal types ( #241 )
2021-10-02 15:31:00 +02:00
Kostas Kyrimis
7e81a95b81
Fix parsing negative durations ( #237 )
2021-10-02 15:30:35 +02:00
antonio2368
0a23eb11ae
Define procedure API for temporal types ( #229 )
2021-10-02 15:30:34 +02:00
Kostas Kyrimis
8ea281649a
Remove support for iso duration and fix bolt ( #235 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
d744711e5e
Define functions that return a specific field of each temporal type ( #221 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
086fc47769
Define subtraction and addition for temporal types ( #209 )
2021-10-02 14:54:48 +02:00
antonio2368
e2112faff0
Functions for defining temporals ( #197 )
2021-10-02 14:54:47 +02:00
Kostas Kyrimis
6913feacc7
Add support for temporal data types in the communication Bolt layer ( #198 )
2021-10-02 14:54:47 +02:00
antonio2368
4e604de9d7
Add support for parsing temporal types ( #187 )
2021-10-02 14:54:45 +02:00
antonio2368
5da32c1bff
Add TemporalData to PropertyValue ( #174 )
2021-10-02 14:53:53 +02:00
Benjamin Antal
482798295e
Add write procedures
2021-10-02 13:17:41 +02:00
antonio2368
d58a1cbb58
License key introduction and removing community edition package ( #232 )
2021-09-29 19:14:39 +02:00
antonio2368
9f855676cb
Add jemalloc purge ( #239 )
2021-09-21 14:43:27 +02:00
János Benjamin Antal
2afc1b99f6
New MGP API ( #219 )
2021-09-09 10:44:47 +02:00
Jure Bajic
0138d277d4
Improve serialization error message ( #208 )
2021-08-20 10:47:07 +02:00
antonio2368
e51954fc94
Update toolchain to v3 ( #189 )
...
* Make memgraph buildable with new toolchain
* Use toolchain v3 in workflows
2021-07-08 14:20:48 +02:00
Kostas Kyrimis
2e1a717dcb
Add telemetry for streams and triggers ( #188 )
...
* Add event counters to streams and triggers
2021-07-07 16:19:59 +02:00
János Benjamin Antal
d6a6d280dd
Add Streams on top of Kafka Consumer ( #172 )
...
* Stop the Consumer grafefully when it is destroyed
* Add Streams
* Add Streams to InterpreterContext
* Remove options to limit processed batches in Consumer
* Add Streams unit tests
* Stop waiting for a full batch if the Consumer stopped
* Add ReadLock functionality to Synchronized
* Use per Consumer-based locking
* Replace shared_mutex with RWLock
2021-07-07 15:57:36 +02:00
János Benjamin Antal
36afc6c5f3
Add Kafka consumer ( #167 )
...
* Add CMake config for Kafka integration
* Add Consumer
* Add simple unit test for consumer
* Add explicit offset handling and test for it
2021-07-07 15:38:51 +02:00
antonio2368
15911b64dc
Use timers for query timeout thread ( #163 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io>
2021-06-16 16:03:58 +02:00
antonio2368
b459639968
Other predefined variables ( #143 )
2021-05-26 14:13:14 +02:00
antonio2368
999b3ef79f
Fix memory tracking issues ( #150 )
2021-05-18 18:42:19 +02:00
antonio2368
30413a7b4f
Ignore carriage return at the end of line for a CSV file ( #151 )
2021-05-18 13:44:29 +02:00
János Benjamin Antal
6d4fe5cdd5
Explore and implement the usage of clang-tidy and sanitizers ( #125 )
...
* Run clang-tidy on the full code base
* Run clang-tidy on diffs
* Enable ASAN in coverage build
* Add UBSAN to code analysis
2021-04-01 17:08:40 +02:00
antonio2368
276e09d7d3
Fix reading rows with empty columns at the end ( #127 )
...
* Fix reading rows with empty columns at the end
* Update CHANGELOG for the recovery logs
2021-03-27 09:47:41 +01:00
János Benjamin Antal
06f761bdf9
Add logs for loading snapshot and WAL files ( #121 )
...
* Add logs for loading snapshot and WAL files
2021-03-26 15:02:35 +01:00
antonio2368
9c6bf4b1b8
Updated storage info ( #102 )
...
* Refactor readable size function
* Log set memory limit
* Add memory allocation info to storage
* Updated changelog
2021-03-24 15:10:28 +01:00
antonio2368
cc56ac3dd8
Expose query for cleaning memory and add memory limit flag ( #100 )
...
* Add memory flag, add additional meminfo utilities
* Add free memory query
2021-03-24 15:10:28 +01:00
antonio2368
dee885d69c
Add exception enablers and blockers ( #99 )
...
* Throw OOMException while creating vertices and edges
* Throw on indices creation
* Throw on setting a property
* Throw oom exception while recovering
* Throw exception when query engine asks for extra memory
* Block out of memor exception during skip list GC
2021-03-24 14:53:15 +01:00
antonio2368
bbed7a2397
Add memory tracker definition ( #93 )
...
* Allow size 0 in MemoryTracker
* Block only exception throwing
* Subtract unsuccessfully allocated size in memory tracker
* Add oom exception enablers and blockers
2021-03-24 14:53:15 +01:00
antonio2368
e8810a4152
Add and use jemalloc lib ( #90 )
...
* Add and use jemalloc lib
* Add autoconf
* Silence macro redefinition warning
2021-03-24 14:53:15 +01:00
Josip Seljan
25eb2c147a
LOAD CSV implementation fixes ( #120 )
...
* Change how csv::Reader handles memory resources
* Add multiline quoted string test
2021-03-24 12:21:07 +01:00
antonio2368
d913a67e16
Add parsing improvements ( #108 )
...
* Add parsing improvements
2021-03-24 12:21:07 +01:00
Josip Seljan
f950a91732
Add LOAD CSV clause infrastructure ( #101 )
...
* Add LOAD CSV clause infrastructure
* Add LoadCsv operator
* Update csv::Reader class
* Support csv files with and without header
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-03-24 12:21:07 +01:00
Josip Seljan
f6d5f576d5
CSV reader class ( #98 )
...
* CSV parsing class
* Basic CSV parsing tests
2021-03-24 12:21:07 +01:00
antonio2368
a9f5f45b3d
Improve telemetry data ( #89 )
...
* Add query type count to telemetry
* Extract telemetry data in different structure
* Add global event counter
2021-03-09 19:55:58 +01:00
antonio2368
f807b495ab
Update commit log after recovery ( #96 )
...
* Define additional commit log constructor which takes an oldest active id
* Delay commit log construction until the recovery process is finished
* Add test for commit log with initial id
* Silence the macro redefinition warning
2021-02-19 11:00:10 +01:00
antonio2368
3f3c55a4aa
Format all the memgraph and test source files ( #97 )
2021-02-18 15:32:43 +01:00
Marko Budiselić
fae407d3fe
Add implementation of average number of equals estimate in SkipList ( #9 )
...
* Implement average number of equals estimate in SkipList
2021-02-10 14:38:54 +01:00
antonio2368
28413fd626
Change log library to spdlog, expose log levels to user ( #72 )
...
* Change from glog to spdlog
* Remove HA tests
* Remove logrotate log configuration
* Define custom main for unit gtests
2021-01-21 16:30:55 +01:00