Marko Budiselić
2f81d4d092
Merge branch 'project-pineapples' into add-gnuplot-example
2023-03-01 23:41:21 +01:00
János Benjamin Antal
27d99b620d
Merge pull request #761 from memgraph/MG-access-control-benchmark-fixes
...
[🍍 < MG] Fix mgbench access control benchmark
2023-02-17 17:33:58 +01:00
János Benjamin Antal
a2ce9c4396
Trigger CI
2023-02-15 13:59:31 +01:00
János Benjamin Antal
3b0d531343
Supress clang-tidy warning
2023-02-15 09:07:48 +01:00
János Benjamin Antal
a17010ed16
Supress clang-tidy warnings
2023-02-15 08:37:45 +01:00
János Benjamin Antal
74f53369c0
Add two more queries to simple benchmark
2023-02-09 13:17:55 +01:00
János Benjamin Antal
2b3141879b
Make the output table nicer for comparing results
2023-02-09 13:17:46 +01:00
János Benjamin Antal
53f95ed1a7
Format python file
2023-02-09 13:17:15 +01:00
János Benjamin Antal
b678e6a63b
Handle bool flags properly in benchmark runner
2023-02-09 12:42:02 +01:00
János Benjamin Antal
563035645c
Add command line flag to opt for using MultiFrame
2023-02-09 12:41:41 +01:00
János Benjamin Antal
12bc78ca2d
Add command line flag to determine MultiFrame size
2023-02-09 12:41:17 +01:00
János Benjamin Antal
a9a388ce44
Use parametrized queries for vertex creation
2023-02-08 13:52:51 +01:00
János Benjamin Antal
6bc2e6d8b6
Merge remote-tracking branch 'origin/project-pineapples' into MG-access-control-benchmark-fixes
2023-02-08 13:48:50 +01:00
János Benjamin Antal
a02abc8f79
Merge pull request #763 from memgraph/T1235-MG-implement-EdgeUniquenessFilter-with-PullMultiple
...
Implement edge uniqueness filter with pull multiple
2023-02-08 13:40:15 +01:00
gvolfing
096d1ce5f4
Invert boolean logic when checking for unique edges
2023-02-08 12:57:21 +01:00
gvolfing
657279949a
Fix compile error
2023-02-08 12:13:46 +01:00
gvolfing
25226cca92
Update src/query/v2/plan/operator.cpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2023-02-08 11:41:43 +01:00
János Benjamin Antal
292a55f4ff
Add new line at the end of dataset file
2023-02-08 11:28:19 +01:00
gvolfing
37f19867b0
Make EdgeUniquenessFilterCursor impl simpler
2023-02-07 08:25:50 +01:00
János Benjamin Antal
b26c7d09ef
Ignore not value equality property filters for ScanByPrimaryKey
2023-02-06 16:39:42 +01:00
János Benjamin Antal
4bad8c0d1e
Filter edges on types
2023-02-06 16:14:39 +01:00
János Benjamin Antal
2b01f2280c
Add TODO about failing query
2023-02-06 16:14:21 +01:00
gvolfing
ac59e7f7e0
Move loop variables incrementation into the same place
2023-02-06 15:54:07 +01:00
gvolfing
7e99f32adb
Remove uncommented, useless code
2023-02-06 15:47:18 +01:00
gvolfing
a1a612899c
Merge branch 'project-pineapples' into T1235-MG-implement-EdgeUniquenessFilter-with-PullMultiple
2023-02-06 13:53:51 +01:00
gvolfing
2219dee6f6
Add initial impl for EdgeUniquenessFilterCursor::PullMultiple
2023-02-06 12:49:32 +01:00
János Benjamin Antal
7bf8550c86
Merge remote-tracking branch 'origin/project-pineapples' into MG-access-control-benchmark-fixes
2023-02-06 08:18:25 +01:00
János Benjamin Antal
8b392ecc97
Merge pull request #752 from memgraph/T1226-MG-Implement-scanbyprimarykey-with-multiframe
...
Implement ScanByPrimaryKey with multiframe
2023-02-06 08:13:43 +01:00
gvolfing
8e315875f2
Update src/query/v2/plan/operator.cpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2023-02-02 07:44:47 +01:00
János Benjamin Antal
41183b328b
Invalidate consumed frames in ScanByPrimaryKey
2023-02-01 17:19:02 +01:00
János Benjamin Antal
c9a0c15c16
Make frames invalid on consumption
2023-02-01 16:17:06 +01:00
János Benjamin Antal
50327254e0
Make queries into a single line
2023-02-01 14:59:50 +01:00
János Benjamin Antal
24ae6069f0
Split edge creation into batches
2023-02-01 14:31:56 +01:00
János Benjamin Antal
7be66f0c54
Add unwind based dataset creator
2023-02-01 14:24:04 +01:00
János Benjamin Antal
b136cd71d2
Fix DistributedCreatedNodeCursor in case of UNWIND
2023-02-01 14:22:47 +01:00
János Benjamin Antal
a38401130e
Set vertex id in Expand properly
2023-02-01 13:24:58 +01:00
gvolfing
bf93b53e7d
Fix compile error due to wrong aggregate field name
2023-02-01 12:36:27 +01:00
gvolfing
4be4a86d0a
Apply suggestions from code review
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2023-02-01 11:39:48 +01:00
János Benjamin Antal
9a805bff8b
Merge remote-tracking branch 'origin/T1226-MG-Implement-scanbyprimarykey-with-multiframe' into MG-create-properties
2023-02-01 11:37:06 +01:00
gvolfing
7d63236f87
Set the default pull-mechanism back to single-pull
2023-01-31 17:36:52 +01:00
gvolfing
4f8c241934
Merge branch 'project-pineapples' into T1226-MG-Implement-scanbyprimarykey-with-multiframe
2023-01-31 17:33:12 +01:00
gvolfing
60b71cc2c1
Rework ScanByPrimaryKey operator - multiframe
2023-01-31 17:30:31 +01:00
János Benjamin Antal
da28a29c7f
Pass properties when creating vertices
2023-01-31 17:09:41 +01:00
János Benjamin Antal
303362d41c
Merge pull request #751 from memgraph/T1229-MG-implement-unwind-with-multiframe
...
Add implementation of `UNWIND` with `MultiFrame`
2023-01-31 15:06:46 +01:00
gvolfing
272e710510
Merge branch 'T1229-MG-implement-unwind-with-multiframe' into T1226-MG-Implement-scanbyprimarykey-with-multiframe
2023-01-31 08:58:27 +01:00
gvolfing
0e3229756f
Merge branch 'project-pineapples' into T1226-MG-Implement-scanbyprimarykey-with-multiframe
2023-01-31 08:49:22 +01:00
János Benjamin Antal
e96eed81b1
Merge branch 'project-pineapples' into T1229-MG-implement-unwind-with-multiframe
2023-01-30 15:56:44 +01:00
János Benjamin Antal
7fa7586940
Merge pull request #729 from memgraph/T1216-MG-implement-aggregate
...
Implement Aggregate with `MultiFrame`
2023-01-30 15:56:30 +01:00
gvolfing
436e41f71f
Init POC of ScanByPrimaryKey multiframe
2023-01-30 13:06:05 +01:00
János Benjamin Antal
fd047e7303
Unify even more logic
2023-01-27 17:10:21 +01:00
János Benjamin Antal
9214c715e2
Address review comment
2023-01-27 17:05:03 +01:00
János Benjamin Antal
44fc2d01c7
Unify logic between multi and single frame pull
2023-01-27 17:04:40 +01:00
János Benjamin Antal
d36c0cc424
Refactor AggregateCursor::ProcessAll
2023-01-27 16:52:46 +01:00
János Benjamin Antal
2ecf580ae7
Eliminate warnings
2023-01-27 16:50:58 +01:00
János Benjamin Antal
c12a5a9019
Make multi-create queries work
2023-01-27 16:50:16 +01:00
János Benjamin Antal
883922dba5
Eliminate warning about deprecated macro
2023-01-27 13:11:55 +01:00
János Benjamin Antal
c7591887a8
Merge branch 'project-pineapples' into T1216-MG-implement-aggregate
2023-01-27 09:07:14 +01:00
János Benjamin Antal
33454c7d8e
Add implementation
2023-01-27 08:43:10 +01:00
János Benjamin Antal
f67422f8b9
Merge pull request #742 from memgraph/T1223-MG-implement-filter-with-multiframe
...
Make access control benchmark run with `MultiFrame`
2023-01-26 21:19:36 +01:00
János Benjamin Antal
23297c2afb
Remove unnecessary function
2023-01-26 19:47:56 +01:00
János Benjamin Antal
3d35a10783
Merge branch 'project-pineapples' into T1223-MG-implement-filter-with-multiframe
2023-01-26 17:31:19 +01:00
János Benjamin Antal
999015a250
Merge pull request #738 from memgraph/T1214-MG-implement-expand-with-multiframe
...
Implement expand with `MultiFrame`
2023-01-26 17:30:55 +01:00
János Benjamin Antal
7d3d52c067
Merge branch 'project-pineapples' into T1214-MG-implement-expand-with-multiframe
2023-01-25 16:19:56 +01:00
János Benjamin Antal
6d4401dc92
Merge pull request #707 from memgraph/T1165-MG-add-property-based-high-level-query-test
...
Add property based high level query tests
2023-01-25 16:19:22 +01:00
János Benjamin Antal
0d00ae74dd
Merge branch 'project-pineapples' into T1214-MG-implement-expand-with-multiframe
2023-01-25 15:27:19 +01:00
János Benjamin Antal
16b78e4eb3
Merge branch 'project-pineapples' into T1165-MG-add-property-based-high-level-query-test
2023-01-25 15:14:26 +01:00
János Benjamin Antal
d44910bc9a
Merge pull request #710 from memgraph/T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
...
Implement scan all and scan all by label with `MultiFrame`
2023-01-25 15:09:11 +01:00
gvolfing
54c1efab7f
Merge branch 'project-pineapples' into 'T1165-MG-add-property-based-high-level-query-test'
2023-01-25 13:40:16 +01:00
János Benjamin Antal
7a0c9beba5
Merge branch 'project-pineapples' into T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
2023-01-25 13:17:28 +01:00
János Benjamin Antal
e13faf41e9
Merge pull request #663 from memgraph/T1167-MG-create-scanbyprimarykey-operator
...
Create ScanAllByPrimaryKey operator
2023-01-25 12:51:04 +01:00
gvolfing
e24a6a86e4
Apply changes from code-review
2023-01-25 12:42:44 +01:00
gvolfing
3bc9c571a0
Make the use RequestRouter more restricted
2023-01-25 07:02:03 +01:00
János Benjamin Antal
7972b3af43
Merge branch 'T1214-MG-implement-expand-with-multiframe' into T1223-MG-implement-filter-with-multiframe
2023-01-24 17:25:30 +01:00
János Benjamin Antal
e2a1029120
Fix simulation test
2023-01-24 17:24:10 +01:00
János Benjamin Antal
7cb07672ff
Make DistributedExpandCursor handle existing nodes with MultiFrame
2023-01-24 17:17:47 +01:00
gvolfing
36fccc32c2
Address PR comments
2023-01-24 16:59:38 +01:00
János Benjamin Antal
4908af5a18
Make DistributedExpand operator handle repeated vertices
2023-01-24 16:33:15 +01:00
János Benjamin Antal
fa8eee2043
Use destination vertex as other end for out edges
2023-01-24 16:19:24 +01:00
gvolfing
b4ae8aea95
Apply suggestions from code review
2023-01-24 15:59:50 +01:00
gvolfing
27ff18733c
NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
2023-01-23 15:08:51 +01:00
gvolfing
0aa7daf002
NOLINTNEXTLINE(bugprone-macro-parentheses)
2023-01-23 14:34:16 +01:00
gvolfing
b341a8d7dd
Merge branch 'project-pineapples' into T1165-MG-add-property-based-high-level-query-test
2023-01-23 14:12:42 +01:00
gvolfing
b7dbc7267b
Appease clang-tidy bugprone-macro-parentheses
2023-01-23 14:09:25 +01:00
gvolfing
1951d781d0
Appease clang-tidy
2023-01-23 13:43:51 +01:00
gvolfing
e65f585fc6
Appease clang-tidy
2023-01-23 13:22:27 +01:00
gvolfing
fa86d4c989
Offer sacrifice to the lisp gods
2023-01-23 12:51:00 +01:00
gvolfing
fcbacdc80d
Rename ScanAllByPrimaryKey operator, fix e2e fail
...
Rename ScanAllByPrimaryKey operator to ScanByPrimaryKey. Make the
LabelIndexExist function use the same functionality as PrimaryKeyExists
again, for now. Previously it was just returning false and before that
it used the same implementation as PrimaryKeyExist. The change to false
broke some existing e2e tests that relied on some label based indexing
operator being instantiated.
2023-01-23 11:56:58 +01:00
gvolfing
69fa4e8c8d
Return fals from unimplemented function, so the benchmark tests can run
2023-01-23 10:43:41 +01:00
gvolfing
ea646e1803
Add missing mock implementation to MockedRequestRouter
2023-01-23 10:06:52 +01:00
gvolfing
89d26c36c9
Merge branch 'project-pineapples' into T1167-MG-create-scanbyprimarykey-operator
2023-01-23 08:42:14 +01:00
gvolfing
cf76e0e19b
React to PR comments
2023-01-23 08:27:44 +01:00
János Benjamin Antal
900ece8109
Add PullMultiple to DeleteCursor
2023-01-20 23:04:52 +01:00
János Benjamin Antal
544c75c212
Add explanation about limitations of current implementation
2023-01-20 23:04:33 +01:00
János Benjamin Antal
0285b56915
Fix compilation error
2023-01-20 23:01:23 +01:00
János Benjamin Antal
515a52130e
Prevent moving from valid frames during defregmentation of MultiFrame
2023-01-20 22:12:24 +01:00
János Benjamin Antal
55b5d76092
Add docs to PullMultiple
2023-01-20 21:38:51 +01:00
János Benjamin Antal
0eee3ad7b7
Fix DistributedExpandCursor
2023-01-20 21:38:35 +01:00
János Benjamin Antal
c9299a6c72
Turn the scan all cursor into an automaton
2023-01-20 21:37:57 +01:00
János Benjamin Antal
de99025c39
Implement PullMultiple for FilterCursor
2023-01-20 15:36:38 +01:00
János Benjamin Antal
be39fac72e
Add return value to PullMultiple
...
Because the `FilterCursor` might push down the same multiframe multiple
times, it is easier if each cursor maintains whether it put any new data
on the `MultiFrame` or not. This way each cursor can decide easily
whether it has to do more work or not.
2023-01-20 15:36:24 +01:00
gvolfing
5eea3ceee4
Apply suggestions from code review
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2023-01-20 06:22:37 +01:00
gvolfing
cc643aac69
Deal with unprotected comma in MOCKED_METHOD
2023-01-19 17:45:15 +01:00
János Benjamin Antal
e7f10ec8f4
Remove duplicated definition
2023-01-19 17:44:03 +01:00
gvolfing
6fe244b209
Add missing MOCK_METHODS to MockedRequestRouter
2023-01-19 17:16:29 +01:00
János Benjamin Antal
ede6281e00
Fix unit tests
2023-01-19 16:58:11 +01:00
János Benjamin Antal
70c8ed9180
Merge branch 'T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2' into T1214-MG-implement-expand-with-multiframe
2023-01-19 16:56:23 +01:00
János Benjamin Antal
59b39e03cb
Merge remote-tracking branch 'origin/project-pineapples' into T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
2023-01-19 16:24:13 +01:00
gvolfing
96ea113a69
Merge branch 'project-pineapples' into T1165-MG-add-property-based-high-level-query-test
2023-01-19 16:22:46 +01:00
János Benjamin Antal
a31c7cce08
Merge pull request #702 from memgraph/T1189-MG-implement-create-node-cursor-mf
...
Implement CreateNode cursor with MultiFrame
2023-01-19 16:22:30 +01:00
János Benjamin Antal
8f6fac3cde
Make arguments const
2023-01-19 14:35:25 +01:00
gvolfing
a0ada914ab
Fix segfault
2023-01-19 13:10:53 +01:00
János Benjamin Antal
ca62fa5123
Fetch properties of destination vertex
2023-01-19 11:42:24 +01:00
János Benjamin Antal
d1548c9253
Eliminate fully
2023-01-19 10:43:54 +01:00
János Benjamin Antal
52baaf8030
Detect when no work should be done because of lack of input data in cursors
2023-01-19 10:43:07 +01:00
János Benjamin Antal
a0274bbdd9
Prevent reexecution of cursor when no output symbols are present
2023-01-19 10:42:09 +01:00
János Benjamin Antal
c5c6fd9b86
Merge branch 'T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2' into T1214-MG-implement-expand-with-multiframe
2023-01-18 22:22:21 +01:00
János Benjamin Antal
586999475b
Merge remote-tracking branch 'origin/T1189-MG-implement-create-node-cursor-mf' into T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
2023-01-18 22:22:05 +01:00
János Benjamin Antal
e888464de2
Implement automaton for ExpandOneCursor
2023-01-18 17:32:22 +01:00
gvolfing
94a536a2b9
Fix hanging conditionvariable
2023-01-18 16:03:34 +01:00
János Benjamin Antal
e42c60d555
Merge branch 'project-pineapples' into T1189-MG-implement-create-node-cursor-mf
2023-01-18 13:37:36 +01:00
János Benjamin Antal
00d6b42c37
Merge pull request #699 from memgraph/T1191-MG-implement-create-expand-with-multiframe
2023-01-18 13:37:24 +01:00
János Benjamin Antal
f39a937323
Add first, but buggy implementation
2023-01-18 13:31:35 +01:00
János Benjamin Antal
575361827e
Add comment about invalid usage of MutliFrame
2023-01-17 21:01:54 +01:00
János Benjamin Antal
901da4c9b3
Update InvalidFramesPopulator to follow the conventions
2023-01-17 21:01:22 +01:00
János Benjamin Antal
81675106fd
Use tests namespace for tests
2023-01-17 20:33:14 +01:00
János Benjamin Antal
7fb828bca3
Update outdated comments
2023-01-17 20:32:00 +01:00
János Benjamin Antal
c04cfc5596
Merge branch 'T1191-MG-implement-create-expand-with-multiframe' into T1189-MG-implement-create-node-cursor-mf
2023-01-17 20:29:52 +01:00
János Benjamin Antal
a3b1676c42
Separate include blocks
2023-01-17 20:25:28 +01:00
János Benjamin Antal
b38a9b9c90
Use tests namespace for tests
2023-01-17 20:25:10 +01:00
János Benjamin Antal
57690c5390
Refactor DistributedScanAllAndFilterCursor
2023-01-17 08:34:08 +01:00
János Benjamin Antal
d11d5c3fa9
Make special member functions of MultiFrame iterators consistent
2023-01-17 08:33:40 +01:00
János Benjamin Antal
36891c119b
Remove unnecessary state from DistributedScanAllAndFilterCursor
2023-01-17 07:17:53 +01:00
János Benjamin Antal
b91b16de96
Fix Interpreter::PullMultiple for queries that return some values
2023-01-17 07:06:25 +01:00
gvolfing
cfdc728d64
Merge branch 'project-pineapples' into T1165-MG-add-property-based-high-level-query-test
2023-01-16 16:26:33 +01:00
gvolfing
40835b8c9c
General clean-up
2023-01-16 14:54:20 +01:00
gvolfing
d1fe73c987
Conform simulation to test GetProperties correctly
2023-01-16 14:05:13 +01:00
gvolfing
3257d46d18
Remove assertion
2023-01-16 13:44:02 +01:00
gvolfing
9be5ee1ae9
Make GetProperties return the PrimaryKeys as well, when queried for all properties like ScanAll
2023-01-16 13:26:33 +01:00
gvolfing
fdd89e0e81
Replace ScanVertices with GetProperties request, in the case of ScanAllByPrimaryKey operator
2023-01-16 11:27:41 +01:00
János Benjamin Antal
82203fa1ca
Merge branch 'T1189-MG-implement-create-node-cursor-mf' into T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
2023-01-16 10:44:58 +01:00
János Benjamin Antal
775e950dba
Update unit tests to test the new logic
2023-01-16 10:16:12 +01:00
János Benjamin Antal
920ad277a5
Add assertion about primary label
2023-01-16 09:03:35 +01:00
János Benjamin Antal
392f6e2b73
Reduce the number of node infos to a maximum of one
2023-01-16 08:57:23 +01:00
János Benjamin Antal
e40f7f507b
Fix pull logic for multiframe
2023-01-16 08:40:43 +01:00
János Benjamin Antal
c139856b2a
Fix unit tests
2023-01-15 18:52:36 +01:00
János Benjamin Antal
b30137ab7a
Improve unit tests to catch bug
2023-01-15 18:39:58 +01:00
János Benjamin Antal
b2b9b1d5cb
Eliminate warnings about deprecated methods
2023-01-15 18:25:48 +01:00
János Benjamin Antal
ace1eb401f
Make unit tests compile with new gtest version
2023-01-15 18:25:32 +01:00
gvolfing
668f7857b1
Pass the correct expression to the operator
2023-01-13 12:38:50 +01:00
gvolfing
d22c962af4
Turn RequestRouter into an interface again
2023-01-12 21:25:40 +01:00
gvolfing
4c25a4dfbd
Remove unnecessary comments
2023-01-12 20:17:35 +01:00
gvolfing
61d84bd622
Set the type of the frame size to size_t from int64_t
2023-01-12 16:58:09 +01:00
gvolfing
3b06db5a02
Clang-tidy
2023-01-12 16:13:27 +01:00
gvolfing
afde0c6926
Remove outcommented code, conform clang-tidy
2023-01-12 15:45:14 +01:00
gvolfing
41bb988fe9
Fix failing benchmark tests and implement cursor
...
The benchmarking tests were failing because of the incorrect
implementation of the ScanAllByPrimaryKeyCursor. The previous
implementation caused the currently allocateable 1m edgeids to run out
very quickly, causing the the tests to freeze.
2023-01-12 14:14:59 +01:00
János Benjamin Antal
d7bd2cc754
Eliminate copying expands
2023-01-12 09:05:29 +01:00
János Benjamin Antal
599b133a55
Fix edge direction when creating edges
2023-01-12 09:04:18 +01:00
jeremy
c38a80ccd7
Merge branch 'T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2' into T1216-MG-implement-aggregate
2023-01-03 14:58:48 +01:00
jeremy
dee33b2072
Merge branch 'T1189-MG-implement-create-node-cursor-mf' into T1190-MG-Implement-ScanAll-and-ScanAllByLabel-with-MultiFrame_2
2023-01-03 14:58:21 +01:00
jeremy
c283c6e6ea
Merge branch 'T1191-MG-implement-create-expand-with-multiframe' into T1189-MG-implement-create-node-cursor-mf
2023-01-03 14:57:02 +01:00
Jeremy B
65113bc55b
Merge branch 'project-pineapples' into T1191-MG-implement-create-expand-with-multiframe
2023-01-03 14:55:56 +01:00
gvolfing
32ea124d4b
Merge branch 'project-pineapples' into T1167-MG-create-scanbyprimarykey-operator
2023-01-02 13:37:07 +01:00
gvolfing
68175bc97c
Init basic cursor class
...
Conform clang-tidy and modify PullMultiple behavior
2023-01-02 13:05:44 +01:00
jeremy
9589dd97b6
Impl and correct aggregate
2022-12-30 16:21:41 +01:00
Jure Bajic
41f5c00f5f
Merge pull request #680 from memgraph/T1185-MG-replace-skip-list
...
- Replace `SkipList` with `std::map` as vertex container
- Replace `SkipList` with `std::map` as edge container
- Replace `SkipList` with `std::set` as `LabelPropertyIndex` container
- Replace `SkipList` with `std::set` as `LabelIndex` container
- Remove `KeyStore` and `LexicographiOrderedVertex`
2022-12-20 16:36:55 +01:00
jbajic
e82955895a
Leave a TODO
2022-12-20 16:14:01 +01:00
jeremy
751c27f792
Get ride of attribute has_valid_frames_
2022-12-20 10:12:50 +01:00
jeremy
7e217e94b3
Tests: CreateMultiFrame create invalid frames
...
Test uses real "once" instead of mocked version
2022-12-19 15:44:01 +01:00
gvolfing
1ebde8be74
Merge branch 'project-pineapples' into T1165-MG-add-property-based-high-level-query-test
2022-12-15 17:21:39 +01:00
gvolfing
32231fe49a
Move the implementation of AllocateInitialEdgeIds into the child class
2022-12-15 17:10:27 +01:00
gvolfing
fa39c6740b
Apply review comments
2022-12-15 17:02:01 +01:00
jeremy
1aa40e5e3f
Add const to method
2022-12-15 16:24:45 +01:00
gvolfing
ae57fa3199
Apply suggestions from code review
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-15 15:25:46 +01:00
jbajic
a0e0791aa1
Address review comments
2022-12-15 14:52:13 +01:00
jeremy
311994a36d
Impl of version more memory friendly
2022-12-15 14:40:20 +01:00
jeremy
54ce79baa0
Add empty line
2022-12-15 14:40:20 +01:00
jeremy
83306d21de
Revert changes
2022-12-15 14:40:20 +01:00
jeremy
ac16348fff
Remove unused variable
2022-12-15 14:40:20 +01:00
jeremy
af812d1311
Implement scanAll MultiFrame version
2022-12-15 14:40:20 +01:00
gvolfing
f36b96744c
Apply post-merge fixes
2022-12-15 11:04:20 +01:00
gvolfing
14000d727f
Merge branch 'project-pineapples' into T1167-MG-create-scanbyprimarykey-operator
2022-12-15 10:26:36 +01:00
Kostas Kyrimis
a9eca651df
Address GH comments and fix a bug in ValidFramesModifier postincrement
2022-12-14 18:26:40 +02:00
gvolfing
3604046f68
Implement cypher query based simulation testing
...
Make the Interpreter be able to handle SimulatorTransport as well. This
includes introducing changes that make it possible to use the different
transport types in a semi-polymorphic way with the introduction of
factory methods in the RequestRouter. The reason for this solution is
that the classes that represent the different transport types have
member function templates, that we can not make virtual. This solution
seemed to be the least convoluted. In the testing itself now it is
possible to pass a set of cypher queried to the interpreter which would
run these queries against the interpreter and the individual shards that
are managed and started up by the MachineManager with the different
entities communicating over the simulated network.
2022-12-14 13:55:45 +01:00
jbajic
817433d342
Revert to approximate
2022-12-13 13:32:14 +01:00
jbajic
76dcf3ad0f
Use std::set in LabelIndex
2022-12-13 13:21:52 +01:00
Kostas Kyrimis
04450dada7
Simplify tests
2022-12-12 19:23:40 +02:00
Kostas Kyrimis
8c2b2f4be2
Merge branch 'T1191-MG-implement-create-expand-with-multiframe' into T1189-MG-implement-create-node-cursor-mf
2022-12-12 19:17:43 +02:00
Kostas Kyrimis
70200919cd
Merge branch 'project-pineapples' into T1191-MG-implement-create-expand-with-multiframe
2022-12-12 19:16:05 +02:00
Kostas Kyrimis
f04ed3c137
Simplify Mocks and test
2022-12-12 19:15:49 +02:00
Kostas Kyrimis
2e4e975102
Update GoogleTest lib to latest release version 1.12.1
2022-12-12 19:15:28 +02:00
Jure Bajic
c24c699c78
Merge branch 'project-pineapples' into T1185-MG-replace-skip-list
2022-12-12 08:01:47 -08:00
Tyler Neely
070225df28
Merge pull request #708 from memgraph/tyler_shard_struct
...
[project-pineapples <-] Make coordinator::Shard into a proper struct named ShardMetadata
2022-12-12 16:51:54 +01:00
Tyler Neely
1170e6762f
Rename coordinator::Shard to coordinator::ShardMetadata to avoid conflation with storage::v3::Shard
2022-12-12 15:22:17 +00:00
Tyler Neely
d6f1505582
Make Shard into a proper struct that can contain additional metadata
2022-12-12 15:14:48 +00:00
jbajic
edb122cb33
Fix benchmark tests
2022-12-12 16:01:20 +01:00
jbajic
b0c4544287
Add asserts
2022-12-12 15:46:41 +01:00
Jure Bajic
0d856bee45
Merge branch 'project-pineapples' into T1185-MG-replace-skip-list
2022-12-12 05:45:09 -08:00
jbajic
c3e19498da
Replace LabelPropertyIndex with std::set
2022-12-12 14:44:58 +01:00
Jure Bajic
03d994318e
Merge pull request #668 from memgraph/T1173-MG-benchmark-datastructures
...
- Add benchmarks comparing insert, remove, find and contains for std::map, std::set and utils::SkipList-
- Create a python plot script
- Create a bash helper script for executing and plotting benchmarks
2022-12-12 04:11:55 -08:00
Jure Bajic
4888605972
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-12-12 03:46:49 -08:00
jbajic
a90a2d86c9
Fix edge test
2022-12-12 12:46:13 +01:00
jbajic
0cf440519e
Introduce VertexData
2022-12-12 12:39:49 +01:00
Jeremy B
9c41e702e6
Merge pull request #703 from memgraph/T1190-correct-ValidFramesConsumer-begin
...
[🍍 < T1190] Correct implementation of begin iterators
Correct implementation of MultiFrame iterators::begin. If no Frames are valid, we need to return end()
2022-12-09 12:56:31 +01:00
jeremy
50f76b926b
Make MultiFrame pointer instead of ref inside impl of iterators
2022-12-09 12:20:01 +01:00
jeremy
0353262cc2
Correct impl of begin iterators
2022-12-09 12:10:48 +01:00
Kostas Kyrimis
4ed20f0247
Add prototype for CreateNode multiframe
2022-12-08 18:46:30 +02:00
Jure Bajic
50fb8fe3c7
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-12-08 04:41:34 -08:00
Jure Bajic
32322d39b8
Merge branch 'project-pineapples' into T1185-MG-replace-skip-list
2022-12-08 04:40:02 -08:00
Kostas Kyrimis
89f42ef73e
Add CreateExpand PullMultiple and prototype mocks for testing
2022-12-07 19:03:30 +02:00
Kostas Kyrimis
0d19d347f8
Merge pull request #695 from memgraph/T1163-remove-template-from-frame
2022-12-06 13:57:50 +02:00
Kostas Kyrimis
a5520f5eae
Merge branch 'project-pineapples' into T1163-remove-template-from-frame
2022-12-06 13:24:55 +02:00
Jure Bajic
eb154d1310
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-12-06 03:08:26 -08:00
Tyler Neely
59c94c90e6
Merge pull request #690 from memgraph/tyler_full_async_request_router
...
[project-pineapples <-] full async request router
2022-12-06 11:50:59 +01:00
jbajic
a7f5212c6e
Merge branch 'T1173-MG-benchmark-datastructures' of github.com:memgraph/memgraph into T1173-MG-benchmark-datastructures
2022-12-06 11:47:57 +01:00
jbajic
b4d6ca2233
Use bool as data
2022-12-06 11:47:48 +01:00
Tyler Neely
5d3d67cbd0
Rename unsent_requests to requests_to_be_sent in RequestRouter
2022-12-06 10:32:57 +00:00
Tyler Neely
675c2fe24a
Update src/io/rsm/rsm_client.hpp
...
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
2022-12-06 11:31:46 +01:00
Tyler Neely
b288f06cb7
Update src/io/rsm/rsm_client.hpp
...
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
2022-12-06 11:31:40 +01:00
Jure Bajic
5beb7c0966
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-12-05 07:00:30 -08:00
jbajic
e0b7d7abeb
Address review comments
2022-12-05 16:00:17 +01:00
Jure Bajic
9bab26fb10
Apply suggestions from code review
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-05 15:50:40 +01:00
Jure Bajic
c39f264684
Merge branch 'project-pineapples' into T1185-MG-replace-skip-list
2022-12-05 06:37:43 -08:00
jbajic
2488895362
Rename ApproximateVertexCount to VertexCount
2022-12-05 15:37:10 +01:00
jbajic
a20edf2b74
Fix bounds
2022-12-05 15:30:39 +01:00
Tyler Neely
25713405df
Update src/io/simulator/simulator_transport.hpp
...
Co-authored-by: gvolfing <107616712+gvolfing@users.noreply.github.com >
2022-12-05 15:26:29 +01:00
Tyler Neely
2a81ce5640
Update src/io/simulator/simulator.hpp
...
Co-authored-by: gvolfing <107616712+gvolfing@users.noreply.github.com >
2022-12-05 15:26:18 +01:00
Tyler Neely
747b8a21cd
Fix bug with polling redirected requests
2022-12-05 14:20:06 +00:00
jbajic
65e9ceb779
Use multimap as index structure
2022-12-05 14:52:51 +01:00
Jeremy B
6338690b00
Merge branch 'project-pineapples' into T1163-remove-template-from-frame
2022-12-05 14:45:54 +01:00
Tyler Neely
ca3f748325
Apply clang-tidy feedback
2022-12-05 13:43:20 +00:00
Tyler Neely
1b458ebc41
Complete migration of GetProperties to new request style
2022-12-05 13:26:44 +00:00
Tyler Neely
6efe074313
Update GetProperties to use the correct style of request driving in the RequestRouter
2022-12-05 13:15:12 +00:00
Tyler Neely
3c72af0c10
Merge branch 'project-pineapples' into tyler_full_async_request_router
2022-12-05 14:09:23 +01:00
jeremy
6d3f9ab695
Removing template from class Frame
2022-12-05 14:07:53 +01:00
Kostas Kyrimis
e8240df29e
Merge pull request #694 from memgraph/T1188-MG-remove-unused-txt
2022-12-05 13:18:38 +02:00
Kostas Kyrimis
ec73ee666c
Remove unused jba.txt
2022-12-05 13:02:33 +02:00
János Benjamin Antal
1d7f61dd0b
Merge pull request #676 from memgraph/T1163-MG-add-multiframe-and-some-operators
...
Implement MultiFrame with iterators
2022-12-05 11:51:11 +01:00
jeremy
7f9eceadb3
Remove un-needed frame modification in Once
...
This is not needed and would be incorrect with the optional
2022-12-05 11:19:47 +01:00
jeremy
f4428af210
Remove reference function on operator++() &
2022-12-05 11:05:47 +01:00
jeremy
9f5af97044
Merge branch 'T1163-MG-add-multiframe-and-some-operators' of github.com:memgraph/memgraph into T1163-MG-add-multiframe-and-some-operators
2022-12-05 10:38:06 +01:00
jeremy
c7c0234889
Add default constructor to iterators
2022-12-05 10:38:01 +01:00
Jeremy B
68ae729b07
Update src/query/v2/multiframe.hpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-12-05 10:34:58 +01:00
Tyler Neely
2e33f8275b
Merge branch 'project-pineapples' into tyler_full_async_request_router
2022-12-02 19:05:15 +01:00
Tyler Neely
9a62503803
Tick the simulator forward from Notify::Await in a similar way that Future::Wait does
2022-12-02 18:04:38 +00:00
Jure Bajic
75b598d014
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-12-02 07:28:39 -08:00
Kostas Kyrimis
98ae30d861
Merge branch 'project-pineapples' into T1163-MG-add-multiframe-and-some-operators
2022-12-02 15:12:02 +02:00
Kostas Kyrimis
6b8a5fd41d
Make all variants of multiframe iterators model ForwardIterator concept properly
2022-12-02 15:11:51 +02:00
jbajic
4a3f950cf9
Fix indices
2022-12-02 10:17:26 +01:00
Kostas Kyrimis
146ed5756c
Merge pull request #666 from memgraph/T1172-MG-implement-get-properties-on-qe
2022-12-01 19:14:20 +02:00
Tyler Neely
438b519703
Apply clang-tidy feedback
2022-12-01 16:26:41 +00:00
Kostas Kyrimis
0ad702175f
Fix expression evaluator mocked request router
2022-12-01 18:24:51 +02:00
jeremy
be3797e0a1
Remove unused param
2022-12-01 17:01:08 +01:00
Tyler Neely
cdde7ca670
Merge branch 'project-pineapples' into tyler_full_async_request_router
2022-12-01 17:00:09 +01:00
jeremy
d0e1d86df3
Remove unused param
2022-12-01 16:57:09 +01:00
Tyler Neely
366a4e2b9a
Add support for efficiently executing multiple asynchronous requests out-of-order from the RequestRouter
2022-12-01 15:56:16 +00:00
Kostas Kyrimis
439eae3a72
Merge branch 'project-pineapples' into T1172-MG-implement-get-properties-on-qe
2022-12-01 17:42:01 +02:00
Kostas Kyrimis
c15e75b48c
Remove old shard request manager header
2022-12-01 17:40:58 +02:00
Kostas Kyrimis
2120645d6a
Remove dead code in request_router simulation test
2022-12-01 17:39:12 +02:00
Jeremy B
616b79ce6c
Merge branch 'project-pineapples' into T1163-MG-add-multiframe-and-some-operators
2022-12-01 16:36:59 +01:00
jeremy
13cabcaab5
Re-implement ValidFramesReader and iterators
2022-12-01 16:31:21 +01:00
Kostas Kyrimis
f1ea76a3d7
Merge branch 'T0919-MG-implement-get-properties-storage' into T1172-MG-implement-get-properties-on-qe
2022-12-01 17:19:00 +02:00
Kostas Kyrimis
18b3c1e8b1
Merge pull request #652 from memgraph/T0919-MG-implement-get-properties-storage
...
Implements GetProperties request handler on shard_rsm
2022-12-01 17:15:15 +02:00
jeremy
db45845619
format
2022-12-01 15:52:35 +01:00
Jeremy B
4bbf3c95ca
Update src/query/v2/multiframe.cpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-12-01 15:49:17 +01:00
jeremy
e11856acf8
Merge branch 'T1163-MG-add-multiframe-and-some-operators' of github.com:memgraph/memgraph into T1163-MG-add-multiframe-and-some-operators
2022-12-01 15:19:40 +01:00
Jeremy B
5cd0d5137e
Update src/query/v2/multiframe.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 15:18:50 +01:00
jeremy
8eec8399a3
Rmove unneeded "this"
2022-12-01 15:04:51 +01:00
jeremy
d18d4f198e
Merge branch 'T1163-MG-add-multiframe-and-some-operators' of github.com:memgraph/memgraph into T1163-MG-add-multiframe-and-some-operators
2022-12-01 14:55:45 +01:00
jeremy
29347c83e7
Remove unneeded tag
2022-12-01 14:54:26 +01:00
Jeremy B
452722f4f8
Update src/query/v2/multiframe.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 14:52:30 +01:00
jbajic
730bac6b74
Replace edges skiplist
2022-12-01 14:32:33 +01:00
Jeremy B
6c441b80ec
Update src/query/v2/multiframe.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 14:20:57 +01:00
Jeremy B
ee9ba1a7f8
Update src/query/v2/multiframe.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 14:20:26 +01:00
Jeremy B
d0c960e900
Update src/query/v2/multiframe.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 14:20:19 +01:00
jeremy
00fd69c170
Add statement to ignroe clang warning
2022-12-01 14:19:41 +01:00
Jeremy B
54907d2a1a
Update src/query/v2/multiframe.cpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-12-01 14:19:15 +01:00
jeremy
23bfd7f4fc
Updated OnceCursor
2022-12-01 13:45:24 +01:00
Kostas Kyrimis
f8cbaaf362
Allow requests with zero properties
2022-12-01 14:41:21 +02:00
jbajic
4e7d8c3ba2
Replace LabelPropertyIndex skiplist with std::map
2022-12-01 12:06:01 +01:00
jeremy
e5d892683c
Keep wraper as ptr instead of ref
2022-12-01 11:14:54 +01:00
jbajic
d4bdedd9e8
Fix GetProperty
2022-11-30 17:12:09 +01:00
jeremy
9f9a81455f
Change type size_t->int64_t
2022-11-30 16:56:35 +01:00
jeremy
b0b8c0a5c9
Add noexcept to basic functions
2022-11-30 16:49:32 +01:00
Kostas Kyrimis
8af635c8d7
Fix clang-tidy warnings
2022-11-30 17:44:37 +02:00
jeremy
5e64b19745
Replace pull_count_->did_pull_
2022-11-30 16:30:55 +01:00
jeremy
38f3a4cacb
Use range for loop instead of idx based
2022-11-30 16:28:01 +01:00
Kostas Kyrimis
3f3d6c52a3
Merge branch 'project-pineapples' into T0919-MG-implement-get-properties-storage
2022-11-30 17:25:05 +02:00
Kostas Kyrimis
94ef57c459
Fix small bugs
2022-11-30 17:24:46 +02:00
jeremy
56556f7c2d
Update incorrect de-referencing
2022-11-30 16:22:39 +01:00
jeremy
a2027fc6ac
Remove default_frame
2022-11-30 16:09:06 +01:00
jeremy
deb31e4b77
Multiframe only expects size of frame instead of default frame
2022-11-30 16:00:24 +01:00
jeremy
072bc58b1e
Reverse condition in while() + comment
2022-11-30 14:50:28 +01:00
jbajic
31f907cb53
Remove keystore
2022-11-30 14:40:12 +01:00
jbajic
9af20c295c
Fix VerticesContainer being passed by value
2022-11-30 14:39:52 +01:00
jeremy
969b8f0da7
Remove un-necessary internal_ptr
2022-11-30 14:32:19 +01:00
jeremy
55008a2927
Rename func ResetAllFramesInvalid->MakeAllFramesInvalid
2022-11-30 14:17:01 +01:00
Jure Bajic
494f6ac25f
Merge branch 'project-pineapples' into T1185-MG-replace-skip-list
2022-11-30 05:12:43 -08:00
jeremy
02ca6734c1
Correct comment to follow common style
2022-11-30 14:11:38 +01:00
jbajic
976e6ff0a6
Replace skiplist with std::set
2022-11-30 14:11:22 +01:00
Kostas Kyrimis
9621532d3d
Prototype suggested changes and polish PR
2022-11-30 14:59:00 +02:00
gvolfing
7e8b4921b4
Make query_v2_plan unit tests available again.
...
The query_v2_plan unit tests were needed in order to properly test if
the created logical plan of the new operator work properly. In order to
achieve this v2 versions of the several files were created, where the
old utilities were replaced with new ones, like query::v2 and
storage::v3. A new fake db accessor was also created in order to be able
to test the ScanAllByPrimaryKey operator.
2022-11-30 13:16:04 +01:00
jeremy
a10c254caa
Add // NOLINTNEXTLINE to correct place
2022-11-30 11:43:16 +01:00
jeremy
9c0c0a2d1c
Add clang warning suppress
2022-11-30 10:14:07 +01:00
Jure Bajic
0450163c5e
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-11-30 00:17:13 -08:00
Jeremy B
62ee6f0e05
Merge branch 'project-pineapples' into T1163-MG-add-multiframe-and-some-operators
2022-11-29 17:34:16 +01:00
jeremy
00a4127e4e
Remove incorrect = default
2022-11-29 17:15:52 +01:00
Tyler Neely
53040c6758
Merge pull request #651 from memgraph/T1157-MG-concurrent-RsmClient-requests
...
Support concurrent RsmClient requests
2022-11-29 17:11:25 +01:00
Tyler Neely
04124a1e9b
Make AsyncRequestToken arguments const, reserve size in response vectors
2022-11-29 15:50:35 +00:00
jeremy
f107ef8aea
Default destructor in header
2022-11-29 16:12:50 +01:00
Tyler Neely
b3605c9ab1
Fix typo in new simplified RequestRouter::CreateExpand method
2022-11-29 15:11:35 +00:00
Tyler Neely
7df3a743b9
Simplify and parallelize CreateExpand
2022-11-29 15:07:59 +00:00
Tyler Neely
f8215306e8
A variety of small code clean-ups, remove overloaded methods
2022-11-29 15:06:01 +00:00
Tyler Neely
8f08d986cb
Make method names clear for RequestRouter requests, avoid unnecessary overloading
2022-11-29 14:47:32 +00:00
jeremy
cc3bcf1dc2
Clang tidy
2022-11-29 15:43:24 +01:00
Tyler Neely
9144d2dccd
Remove bug-prone inverted ownership of ExecutionState as a consideration of operators
2022-11-29 14:30:59 +00:00
jeremy
9faa206f95
Clang tidy
2022-11-29 15:03:03 +01:00
jbajic
1b97bb0856
Remove redundant line from skiplist
2022-11-29 14:57:53 +01:00
Jure Bajic
f54701cc96
Merge branch 'project-pineapples' into T1173-MG-benchmark-datastructures
2022-11-29 05:55:29 -08:00
jbajic
1f98d33fa6
Remove b++ tree
2022-11-29 14:40:44 +01:00
jeremy
86f7b82bdc
Clang tidy
2022-11-29 14:26:17 +01:00
jeremy
8c5edaaeb9
Update type
2022-11-29 14:07:15 +01:00
jbajic
632db4175a
Revert storage changes
2022-11-29 14:04:12 +01:00
jeremy
3c0e38aacb
Adapt comment
2022-11-29 13:54:26 +01:00
jeremy
aace5db8cc
Adapt comment
2022-11-29 13:53:08 +01:00
jeremy
bc32a3d305
Adapt comment
2022-11-29 13:52:29 +01:00
jeremy
cead1bcb21
Rename ValidFramesInvalidator->ValidFramesConsumer
2022-11-29 13:49:37 +01:00
Tyler Neely
ec529da8d2
Address clang-tidy feedback
2022-11-29 12:28:19 +00:00
jbajic
ce5f1c2f17
Add memory runner for insert
2022-11-29 13:27:28 +01:00
Tyler Neely
1b77e029ca
Use the Async methods under the hood for the blocking RsmClient::Send*Request methods for code-reuse
2022-11-29 11:33:49 +00:00
jeremy
16c30d61aa
Merge branch 'T1163-MG-add-multiframe-and-some-operators' of github.com:memgraph/memgraph into T1163-MG-add-multiframe-and-some-operators
2022-11-29 12:30:11 +01:00
Jeremy B
b8de2c9c7a
Merge branch 'project-pineapples' into T1163-MG-add-multiframe-and-some-operators
2022-11-29 12:30:00 +01:00
jeremy
cd0aaeb5e9
Merge branch 'T1163-MG-add-multiframe-and-some-operators' of github.com:memgraph/memgraph into T1163-MG-add-multiframe-and-some-operators
2022-11-29 12:29:59 +01:00
Jeremy B
cf388d80fc
Update src/query/v2/plan/operator.lcp
2022-11-29 12:29:52 +01:00
Tyler Neely
a308ee501a
Unify the driving of read and write requests in the RequestRouter
2022-11-29 11:25:29 +00:00
jbajic
884831ece5
Use pk
2022-11-29 11:56:01 +01:00
Tyler Neely
aa7d362296
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T1157-MG-concurrent-RsmClient-requests
2022-11-29 10:13:42 +00:00
jeremy
e946eb50d2
Add version ValidFramesModifier to distinguish between reading-only and reading+modifying
2022-11-29 11:05:11 +01:00
jeremy
8f19ce88d9
Rename ItOnNonConstInvalidFrames->InvalidFramesPopulator
2022-11-29 10:40:52 +01:00
jeremy
7c37ed2313
Rename ItOnNonConstValidFrames -> ValidFramesInvalidator
2022-11-29 10:38:01 +01:00
jeremy
11119e5406
Rename ItOnConstValidFrames->ValidFramesReader
2022-11-29 10:32:52 +01:00
Tyler Neely
7d52eedb21
Merge pull request #674 from memgraph/tyler_rename_ShardRequestManager_to_RequestRouter
...
[project-pineapples <- ] Rename ShardRequestManager to RequestRouter
2022-11-29 10:29:42 +01:00
Tyler Neely
4f18fa7431
Fix LCP that broke with invisible merge conflict
2022-11-29 09:07:18 +00:00
Tyler Neely
9f10c3ea06
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into tyler_rename_ShardRequestManager_to_RequestRouter
2022-11-29 08:57:28 +00:00
Jeremy B
18b3550dbe
Merge branch 'project-pineapples' into T1163-MG-add-multiframe-and-some-operators
2022-11-28 17:34:07 +01:00
jeremy
b244c4d6ee
Impl of Multiframe and iterators
2022-11-28 17:32:29 +01:00
Kostas Kyrimis
4dc639a05a
Merge pull request #644 from memgraph/T1159-MG-Add-memgraph-functions
...
Add mg-functions lib, expression evaluator units and e2e tests
2022-11-28 18:18:58 +02:00
Kostas Kyrimis
50df0d4d53
Fix python imports and replace const char array with constexpr
2022-11-28 17:31:41 +02:00
jbajic
5f5d839f0c
Update analyzer script
2022-11-28 16:28:36 +01:00
gvolfing
22e3164e60
Add missing license
2022-11-28 16:18:28 +01:00
Kostas Kyrimis
8fd7327fbd
Address GH comments
2022-11-28 15:38:12 +02:00
jbajic
500691318a
Add analyze script
2022-11-28 14:15:41 +01:00
Tyler Neely
9fc7f9dced
Standardize RequestRouter variable names as request_router
2022-11-28 13:03:07 +00:00
Tyler Neely
82db1d4ad8
Rename ShardRequestManager to RequestRouter
2022-11-28 12:38:38 +00:00
Kostas Kyrimis
ed0b67dfdb
Fix compilation issues of the merge
2022-11-28 13:38:12 +02:00
Kostas Kyrimis
0f34c49e21
Merge branch 'project-pineapples' into T1159-MG-Add-memgraph-functions
2022-11-28 13:18:51 +02:00
Tyler Neely
f4d0c7769e
Merge pull request #670 from memgraph/tyler_set_proper_namespace_for_ShardRequestManager
...
Change the namespace of ShardRequestManager to query::v2 instead of msgs
2022-11-28 11:31:09 +01:00
Tyler Neely
6d3c04bd61
Address clang-tidy feedback
2022-11-28 10:09:59 +00:00
Tyler Neely
a8dc6fd41e
Change the namespace of ShardRequestManager to query::v2 instead of msgs
2022-11-28 09:43:56 +00:00
Tyler Neely
de84d4d6ea
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T1157-MG-concurrent-RsmClient-requests
2022-11-28 08:53:21 +00:00
jbajic
36a7abb170
Add remove benchmark
2022-11-27 22:50:36 +01:00
jbajic
41b06a0a37
Extract common functionalities
2022-11-27 22:28:23 +01:00
jbajic
cceab46a7c
Add find benchmark
2022-11-27 21:59:18 +01:00
jbajic
243fa5e4b2
Add insert benchmark
2022-11-27 21:21:55 +01:00
Marko Budiselic
0220e9b4f7
Add multiframe benchmark plot
2022-11-27 13:29:23 +01:00
Kostas Kyrimis
6f4996de0e
Fix broken merge and address GH comments
2022-11-25 16:20:38 +02:00
Kostas Kyrimis
01d5953bb6
Merge branch 'project-pineapples' into T1159-MG-Add-memgraph-functions
2022-11-25 15:47:44 +02:00
János Benjamin Antal
6b64fd5ce5
Merge pull request #664 from memgraph/MG-implicit-fallthrough-as-error
...
Make implicit-fallthrough a compilation error
2022-11-24 19:32:59 +01:00
jbajic
c5138c8d58
Add b+ tree
2022-11-24 17:45:43 +01:00
jbajic
8fe1b8d7fc
Add std::map and skiplist benchamrk
2022-11-24 17:44:41 +01:00
Kostas Kyrimis
7a3caa320c
WiP
2022-11-24 15:29:51 +02:00
Kostas Kyrimis
07a8ac0db8
Merge branch 'project-pineapples' into T0919-MG-implement-get-properties-storage
2022-11-24 15:29:05 +02:00
János Benjamin Antal
3b798ab313
Merge branch 'project-pineapples' into MG-implicit-fallthrough-as-error
2022-11-24 11:16:57 +01:00
János Benjamin Antal
d44c1836c7
Merge pull request #649 from memgraph/T0995-MG-implement-top-error-handling-storage
...
Implement top level error handling in storage
2022-11-24 11:14:59 +01:00
János Benjamin Antal
c4327cfb00
Make implicit-fallthrough a compilation error
2022-11-24 11:13:55 +01:00
gvolfing
a65ea4fe01
Conform clang-tidy
2022-11-24 09:37:47 +01:00
jbajic
d820d0a9e5
Fix clang tidy errors
2022-11-23 22:29:03 +01:00
jbajic
7aa68164f0
Merge branch 'project-pineapples' into T0995-MG-implement-top-error-handling-storage
2022-11-23 21:55:08 +01:00
jbajic
d6b444c38b
Log transaction id
2022-11-23 18:02:00 +01:00
János Benjamin Antal
c647134916
Merge pull request #611 from memgraph/T1083-MG-limit-and-order-expand-one_v3
...
Add Limit and OrderBy to ExpandOne
2022-11-23 17:37:32 +01:00
jbajic
b3eec92525
Merge branch 'project-pineapples' into T0995-MG-implement-top-error-handling-storage
2022-11-23 16:11:58 +01:00
gvolfing
1b73ca4860
Remove ScanAllById operator
2022-11-23 16:04:09 +01:00
jbajic
ab5fc05fd7
Address review comments
2022-11-23 15:32:28 +01:00
gvolfing
814c5eb397
Add the possibility of primary-key based indexing
...
Add new possibility to base our indexing solution on. Add
ScanAllOperator that represents the semantics and integrate its use
through index_lookup.
2022-11-23 15:15:26 +01:00
jeremy
e77843f2ec
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-11-23 14:47:29 +01:00
János Benjamin Antal
40e145e7d0
Merge pull request #646 from memgraph/T1116-MG-update-delete-vertex-labels
...
Update/Delete vertex labels
2022-11-23 14:35:11 +01:00
Kostas Kyrimis
2ff81ebf04
Address missed GH comments && fix broken merge
2022-11-23 15:16:14 +02:00
jeremy
c3c68cc2ce
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-11-23 13:55:02 +01:00
jeremy
6d86801be0
Extract logic to convert ORderingDirection to Ordering
2022-11-23 13:54:54 +01:00
Kostas Kyrimis
407418e8f5
Merge branch 'project-pineapples' into T1159-MG-Add-memgraph-functions
2022-11-23 14:53:53 +02:00
Kostas Kyrimis
6d544e4fc0
Address GH comments
2022-11-23 14:51:38 +02:00
Jeremy B
56e2ad4546
Update src/storage/v3/shard_rsm.cpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-11-23 13:24:35 +01:00
jbajic
9b19dd57d3
Remove storage include
2022-11-23 13:19:25 +01:00
Tyler Neely
5045323b1d
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T1157-MG-concurrent-RsmClient-requests
2022-11-23 11:31:14 +00:00
Jeremy B
aa146d28f8
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-11-23 12:26:58 +01:00
János Benjamin Antal
1cd10ab409
Merge branch 'project-pineapples' into T1116-MG-update-delete-vertex-labels
2022-11-23 12:15:34 +01:00
János Benjamin Antal
36390608aa
Merge pull request #648 from memgraph/MG-remove-unused-storage-files
...
Remove `storage.hpp` and `storage.cpp` files
2022-11-23 12:15:09 +01:00
Jure Bajic
e565fc6e3a
Merge branch 'project-pineapples' into T0995-MG-implement-top-error-handling-storage
2022-11-23 02:33:07 -08:00
jbajic
ce0f1a09f7
Remove unused methods from accessors
2022-11-23 11:32:53 +01:00
jbajic
accf015dcf
Fix clang-tidy errors
2022-11-23 11:03:17 +01:00
Jeremy B
84800cff76
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-11-23 10:57:05 +01:00
jbajic
9fade5ebac
Fix tests
2022-11-23 10:37:33 +01:00
Jure Bajic
75606dfeb0
Merge branch 'project-pineapples' into T1116-MG-update-delete-vertex-labels
2022-11-23 00:34:27 -08:00
János Benjamin Antal
9c36d8928a
Merge branch 'project-pineapples' into MG-remove-unused-storage-files
2022-11-23 09:19:14 +01:00
János Benjamin Antal
d926c4c4a4
Merge pull request #657 from memgraph/tyler_simulator_determinism_test
...
Improve simulator determinism
2022-11-23 09:14:25 +01:00
Kostas Kyrimis
9ec72bd969
Add GetProperties shard handler and tests
2022-11-22 19:44:22 +02:00
jeremy
85034ddcbe
Rename variable un function def
2022-11-22 17:29:02 +01:00
Tyler Neely
ea533f43fc
Print out the simulator seed when we exceed the configured abort_time
2022-11-22 16:06:57 +00:00
Tyler Neely
e0086e5666
Use spdlog::trace instead of info for simulator-related messages
2022-11-22 16:06:35 +00:00
Tyler Neely
c0a103e851
Do not advance the clock with every message, as this prevents messages of a certain request depth from ever completing
2022-11-22 16:00:06 +00:00
jeremy
3a171376d7
OrderBy in Expand has two members to differ vertices Vs edges
2022-11-22 16:47:25 +01:00
jbajic
cd7b33f23f
use comparison between ErrorCode and ShardError
2022-11-22 16:22:42 +01:00
jbajic
d82cfb349e
Use ShardResult
2022-11-22 15:00:32 +01:00
jeremy
6801d6ff09
Remove duplicate using statement
2022-11-22 14:49:54 +01:00
jbajic
f1e360469a
Expand SHARD_ERROR with fmt format
2022-11-22 14:44:28 +01:00
jeremy
307cce9e21
Remove unused struct
2022-11-22 14:23:24 +01:00
jeremy
662fa2e6d2
Remove uneeded using statement
2022-11-22 14:22:19 +01:00
jeremy
c0cb53e156
Replace if by switch
2022-11-22 14:20:22 +01:00
jeremy
742017548f
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-11-22 14:11:48 +01:00
Jeremy B
bbbd722eeb
Update src/storage/v3/request_helper.hpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-11-22 14:11:29 +01:00
jeremy
f463d9f59f
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-11-22 14:10:07 +01:00
Jeremy B
a6f3937692
Update src/storage/v3/request_helper.hpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-11-22 14:10:02 +01:00
jbajic
5717dfb165
Add ErrorCode to SHARD_ERROR macro
2022-11-22 14:05:04 +01:00
jeremy
1101c2444c
Make ConvertPropertyMap expect ref and not rvalue
2022-11-22 14:01:16 +01:00
jbajic
2a6dc7bb93
Remove success
2022-11-22 13:49:12 +01:00
jbajic
d080e260e6
Remove redundant code
2022-11-22 13:27:02 +01:00
jbajic
37f5fb29ea
Introduce BoltResult
2022-11-22 13:15:32 +01:00
Tyler Neely
c8c72de6ac
Use duration_cast to ensure that we are retrieving milliseconds inside SimulatorStats::operator<<
2022-11-22 11:30:24 +00:00
Tyler Neely
0b19b62b12
Set the abort_time for raft tests to 1 simulated hour
2022-11-22 11:25:24 +00:00
jbajic
bffef1a653
Use experimental source location
2022-11-22 11:13:23 +01:00
Tyler Neely
66f39f2681
Add elapsed time to the SimulatorStats
2022-11-22 08:55:48 +00:00
Tyler Neely
081c3e5bed
Capitalize unsigned integer literal
2022-11-21 13:16:35 +00:00
jeremy
ce8bc522d0
Clang warning
2022-11-21 12:23:04 +01:00
Tyler Neely
0f66ae31dd
Use explicit unsigned integer in right shift operation
2022-11-21 11:11:39 +00:00
jeremy
e9e42a0614
add * token to variable declaration
2022-11-21 11:50:56 +01:00
jeremy
1a67dec302
Update test to use OrderBy and Limit on Expand
2022-11-21 11:45:35 +01:00
jeremy
4eb673c7b9
Add const to variable
2022-11-21 11:31:22 +01:00
Tyler Neely
71dcba331e
Increment simulator time by up to 30ms in ticks
2022-11-21 10:10:45 +00:00
Tyler Neely
e43f4e2181
Sort simulator in_flight_ messages based on a stable sort of the sender address
2022-11-21 10:08:42 +00:00
jeremy
b2050d55ce
Add const
2022-11-21 10:59:38 +01:00
jeremy
2fc1aeb087
Remove unneeded using statements
2022-11-21 10:59:16 +01:00
jeremy
86e5b44c1c
Remove Shard::Accessor (unsued)
2022-11-21 10:42:15 +01:00
jeremy
1b0db5289d
OrderByVertices only keeps OrderBy expression which corresponds to Vertices
2022-11-21 10:41:08 +01:00
Tyler Neely
45badbe21f
Use unsigned integer literals for bit shifting in the NewShardUuid function
2022-11-18 17:22:50 +00:00
Tyler Neely
04420a84c7
Fix incorrect usage of IncrementServerCountAndWaitForQuiescentState in the shard_rsm.cpp simulation test
2022-11-18 16:54:38 +00:00
Tyler Neely
ce45a548c7
Significantly improve the determinism of the coordinator, UUID generation, the machine manager, the shard manager, and the cluster property test
2022-11-18 16:42:18 +00:00
Tyler Neely
3ad8489735
Run raft sim with random seeds over time, but allow a seed to be easily replayed using the RunWithSeed function
2022-11-18 10:34:21 +00:00
Tyler Neely
7115a7e75b
Apply clang-tidy fixes
2022-11-18 10:24:19 +00:00
Tyler Neely
0f32407bdc
Add compare header to histogram collector header
2022-11-18 10:20:45 +00:00
Tyler Neely
a37e7e4aff
Add assert to ensure TestAddress will not be higher than the uchar max
2022-11-18 10:19:55 +00:00
Tyler Neely
6b9a617df0
Streamline simulator tick condition varible notification. Advance time more aggressively
2022-11-18 09:20:15 +00:00
Tyler Neely
923325b8fa
Progress the simulator clock even when there are messages to deliver
2022-11-18 09:04:29 +00:00
Tyler Neely
f6017697d6
Make raft tests fully deterministic for rng_seeds between 0 and 500 at 1% message loss
2022-11-17 21:32:55 +00:00
Tyler Neely
9c3d683942
Explicitly join test threads before collecting test stats
2022-11-17 21:28:17 +00:00
Tyler Neely
cf73ed529d
Block messages from being delivered upon ShutDown
2022-11-17 21:27:48 +00:00
Tyler Neely
262df5c6a2
Avoid unordered_map in Raft code for more determinism
2022-11-17 21:24:13 +00:00
Tyler Neely
098084314e
Make TestAddress deterministically sortable
2022-11-17 21:22:41 +00:00
Tyler Neely
12880fc71a
Don't advance the simulator handle from server threads themselves
2022-11-17 18:27:12 +00:00
Tyler Neely
80d6776210
Improve simulator determinism
2022-11-17 17:36:46 +00:00
jeremy
3840c14846
Remove nocommit comment
2022-11-17 14:33:08 +01:00
jeremy
fe03f5b206
Update include to full path
...
add auto To variable declaration
2022-11-17 14:11:25 +01:00
jeremy
5f88e75571
Remove double declaration
2022-11-17 14:10:49 +01:00
jeremy
27495ef43a
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-11-17 13:34:08 +01:00
jeremy
a499bf6dfd
Rename variable
2022-11-17 13:33:11 +01:00
Jeremy B
49652d0a61
Update src/storage/v3/shard_rsm.cpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-11-17 13:32:48 +01:00
jeremy
6e44c2295d
Remove template from OrderByEdges + move to impl file
2022-11-17 13:30:39 +01:00
jeremy
d482f7da90
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-11-17 12:59:37 +01:00
Jeremy B
77ab07d991
Update src/storage/v3/request_helper.hpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-11-17 12:58:39 +01:00
jeremy
38b0b308ce
Remove unnecessary reserve
2022-11-17 12:58:28 +01:00
jeremy
2f55491271
use std::SameAsAnyOf i.o. is_sale_v
2022-11-17 12:45:15 +01:00
Jeremy B
68e51e73ba
Update src/storage/v3/shard_rsm.cpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-11-17 12:42:36 +01:00
jeremy
a17a6aea5a
rename variable vertice->vertex
2022-11-17 12:27:12 +01:00
jbajic
ec4804b72a
Move ErrorCode to common
2022-11-17 11:03:03 +01:00
jbajic
e98ef634de
Ignore warning
2022-11-16 21:03:36 +01:00
jeremy
c4e22ffde3
Remove unnecessary tag
2022-11-16 18:51:57 +01:00
jeremy
b3ef0ccd71
Moving function from shard_rsm to helper files
2022-11-16 18:50:22 +01:00
jbajic
15fc3c0834
Fix error
2022-11-16 18:12:25 +01:00
jbajic
9261fabe60
Adapt for unfound object
2022-11-16 17:41:43 +01:00
jbajic
7bdcd8f9f4
Add shard_error in response
2022-11-16 14:48:06 +01:00
jeremy
bd11225d23
Use ref instead of optional
...
Use ref i.o. ptr
Rename variable for clarity
2022-11-16 14:14:35 +01:00
jbajic
1f159b5a80
Fix scheme test
2022-11-16 08:58:06 +01:00
jbajic
14ddd7254d
Fix communication and memgraph
2022-11-15 19:37:24 +01:00
jbajic
8629ee5ebc
Fix query v2
2022-11-15 19:30:34 +01:00
jbajic
1c94c59a24
Fix tests
2022-11-15 19:29:56 +01:00
Tyler Neely
631d18465b
Allow the RsmClient to store multiple in-flight requests. Update the ShardRequestManager to use the new request tokens and refactor some bug-prone aspects of it
2022-11-15 17:52:38 +00:00
jbajic
3f97a13493
Revert TError to Error
2022-11-15 18:30:25 +01:00
jbajic
5656a24c96
Remove unused exception
2022-11-15 18:25:25 +01:00
jbajic
9c05910e68
Adapt storage to new erro handling
2022-11-15 18:25:12 +01:00
jbajic
3d66bbd988
Remove shard_operation_result
2022-11-15 18:24:40 +01:00
jbajic
07032887a4
Adapt mg-expr
2022-11-15 18:24:28 +01:00
Kostas Kyrimis
9e81fe791c
Fix clang-tidy warnings, remove commented out code and add HasLabel
...
functions in ShardRequestManager to avoid throwing bad optional on
expression evaluator
2022-11-15 19:20:01 +02:00
jeremy
cca4e97bcf
Remove un-needed argument from OrderByEdges
2022-11-15 13:37:43 +01:00
Kostas Kyrimis
213583f916
Add expression evaluator && awesome_memgraph_functions unit tests
2022-11-14 20:46:20 +02:00
Kostas Kyrimis
94bc671551
Add awesome memgraph functions e2e tests
2022-11-14 20:46:19 +02:00
Kostas Kyrimis
02ef954e51
Add mg-functions lib and integrated with SE and QE
2022-11-14 20:46:16 +02:00
jeremy
131d7f2a74
OrderByElements: no longer templated over vertice/edge types. For edges, we always need to have access to the corresponding vertex_accessor (ex of sorting expr needing both : "vertex.map[edge]")
...
ComputeExpression: made assert instead of if check
2022-11-14 18:21:03 +01:00
jbajic
618237cc96
Adapt schema validator
2022-11-14 14:25:20 +01:00
jbajic
ef755e466c
Add ShardError
2022-11-14 14:15:29 +01:00
Jure Bajic
a9c5d40721
Update src/utils/template_utils.hpp
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-11-14 10:32:18 +01:00
jbajic
b4c24f4506
Remvoe storage.hpp and storage.cpp files
2022-11-14 10:23:48 +01:00
jbajic
0462b8fc8f
Address review comments
2022-11-14 09:15:03 +01:00
jbajic
6eabceca4a
Add unit tests for UpdateVertex
2022-11-14 09:02:55 +01:00
jeremy
2045f54577
Correct merge issue
2022-11-09 21:36:41 +01:00
Jeremy B
18009c06b6
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-11-09 16:47:06 +01:00
Jure Bajic
db7b2aa59a
Merge branch 'project-pineapples' into T1116-MG-update-delete-vertex-labels
2022-11-09 07:24:26 -08:00
János Benjamin Antal
5c0e41ed44
Merge pull request #593 from memgraph/T1079-MG-add-simple-query-to-benchmark_v2
...
Add new dataset for mgbench
2022-11-09 16:21:56 +01:00
Jure Bajic
12e9c1a739
Merge branch 'project-pineapples' into T1116-MG-update-delete-vertex-labels
2022-11-09 07:08:04 -08:00
jbajic
a030419565
Move LogResultError to helper
2022-11-09 16:07:27 +01:00
jeremy
6df2db0d19
Remove comment force github workflow
2022-11-09 16:02:59 +01:00
jeremy
968584a8fc
Add comment force github workflow
2022-11-09 16:02:25 +01:00
jbajic
8636788ab2
Fix typos
2022-11-09 16:00:25 +01:00
jbajic
691f6af36d
Remove redundant code
2022-11-09 15:52:08 +01:00
jbajic
23f1536eac
Add tests
2022-11-09 15:42:09 +01:00
jeremy
33add3ecd0
Force formatting
2022-11-09 15:38:51 +01:00
János Benjamin Antal
91b5092c71
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-09 13:05:30 +01:00
János Benjamin Antal
c0f576c187
Merge pull request #645 from memgraph/MG-add-python-checks-pineapples
...
Add python checks
2022-11-09 13:05:15 +01:00
jbajic
a2735c8953
Add label add/remove in UpdateVertex req
2022-11-09 12:10:46 +01:00
jbajic
51fb4a6e7a
Remove empty line
2022-11-09 11:32:54 +01:00
jbajic
cba183898a
Update actions versions
2022-11-09 10:40:46 +01:00
jbajic
5f5fe7eb29
Add python checks
2022-11-09 10:39:29 +01:00
jeremy
2087877df2
Add more checks in test
2022-11-09 08:48:51 +01:00
Jeremy B
efa4378fb4
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-09 08:26:25 +01:00
jeremy
cad0e80d00
Update test
2022-11-08 17:42:31 +01:00
János Benjamin Antal
3c07a5dc04
Merge pull request #639 from memgraph/T1145-MG-handle-insertions-of-vertices-that-already-exist-in-a-better-way
...
Return an error for insertions of vertices that already exist
2022-11-08 17:11:22 +01:00
Jeremy B
e442963466
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-08 17:00:30 +01:00
János Benjamin Antal
32fe4d94d9
Merge branch 'project-pineapples' into T1145-MG-handle-insertions-of-vertices-that-already-exist-in-a-better-way
2022-11-08 16:35:38 +01:00
János Benjamin Antal
94b66a4e81
Merge pull request #638 from memgraph/T1148-MG-fix-expand-one-source-vertex
...
Fix setting the primary key of source vertex in ExpandOne
2022-11-08 16:35:30 +01:00
jeremy
b2f3fab693
Remove comment
2022-11-08 15:06:27 +01:00
jeremy
d7ce7cea13
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-11-08 15:02:56 +01:00
jeremy
61b9457718
Remove split-files logic from test code
2022-11-08 11:35:54 +01:00
János Benjamin Antal
159b30ba5f
Merge branch 'project-pineapples' into T1148-MG-fix-expand-one-source-vertex
2022-11-08 08:20:25 +01:00
gvolfing
b67e5b9a6c
Merge branch 'project-pineapples' into T1145-MG-handle-insertions-of-vertices-that-already-exist-in-a-better-way
2022-11-08 07:53:45 +01:00
gvolfing
79756ae6fb
Modify unit test
...
Instead of Creating an exception that is would be only used in this
file, just assert the type of the error the double vertex insertion
operation should yield.
2022-11-08 07:31:01 +01:00
jeremy
a54bcb9819
Remove un-necessary rm in workflow
2022-11-07 17:32:09 +01:00
jeremy
c16f948de9
Delete cache folder before running benchmark test
2022-11-07 13:08:35 +01:00
jeremy
2a7ed1ad82
Add single e2e benchmark test
2022-11-07 12:55:08 +01:00
jeremy
5201db46d2
Add assert for split_file
2022-11-07 12:15:57 +01:00
gvolfing
91550128a5
Conform unit test with the new error-handling
2022-11-07 11:46:24 +01:00
jeremy
d5966101ad
Merge branch 'T1079-MG-add-simple-query-to-benchmark_v2' of github.com:memgraph/memgraph into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-07 10:55:48 +01:00
jbajic
88487e2513
Extract vertex creation from FillUpSourceVertexSecondaryLabels
2022-11-07 10:54:28 +01:00
jeremy
b10b1eb239
Correct shard configuration
2022-11-07 10:33:24 +01:00
jeremy
dca94f42bb
Update key type in shard configuration
2022-11-07 10:14:49 +01:00
gvolfing
39b40ecf00
Extend the Error enum instead of a separate type
...
The error representing that a vertex is already inserted into the
skip-list was represented by the struct AlreadyInseertedElement. Instead
of using that struct, extend the memgraph::storage::v3::Error scoped
enum and use that to represent the double-insertion error.
2022-11-07 10:00:34 +01:00
jeremy
baacc52a65
Add support for split file configuration
2022-11-07 09:54:14 +01:00
jeremy
5273d319e2
Add split file for access control
2022-11-07 09:53:29 +01:00
Jeremy B
23838b50ea
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-05 14:46:33 +01:00
Tyler Neely
d85fb94bc7
Merge pull request #634 from memgraph/T1122-MG-ShardManager-ThreadPool
...
Add shard manager thread pool
2022-11-04 16:41:53 +01:00
jbajic
4d2036249e
Fix e2e test
2022-11-04 16:37:35 +01:00
Jure Bajic
d23643d4ff
Merge branch 'project-pineapples' into T1148-MG-fix-expand-one-source-vertex
2022-11-04 16:19:55 +01:00
jbajic
e52ce1e363
Add expandone test
2022-11-04 16:18:18 +01:00
Tyler Neely
1abfe28806
Correctly use a moved transport interface while constructing CoordinatorWorker
2022-11-04 15:11:32 +00:00
jeremy
d17970f6d9
Update default value for --datasets
2022-11-04 16:04:45 +01:00
jeremy
9e72c7cb54
Add extra safe check to in case we call on dataset.py
2022-11-04 15:57:26 +01:00
Tyler Neely
528e30a9be
Avoid warning for not using captured this. Use std::move instead of forward where appropriate
2022-11-04 14:13:15 +00:00
Tyler Neely
bb7c7f7627
Make popped messages non-const to allow for RVO
2022-11-04 14:07:49 +00:00
jbajic
bab5e1386a
Address review comments
2022-11-04 15:05:55 +01:00
gvolfing
3d954e7abc
Restructure SchemaResult type and uts usage
...
Rename SchemaResult to ShardOperationResult move it into a separate
header and add a new type to the underlying variant that indicates that
the vertex, the user would like to insert into the skip-list already
exist.
2022-11-04 15:04:25 +01:00
Tyler Neely
fa5c9a2568
Make items popped from *worker::Queue const. Use std::move instead of std::forward in one place
2022-11-04 11:33:02 +00:00
Tyler Neely
c745f8c877
Fix build after breaking code suggestion
2022-11-04 11:32:17 +00:00
Tyler Neely
486231b1b9
Update src/machine_manager/machine_manager.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-04 12:28:01 +01:00
Tyler Neely
43ad5855c4
Update src/machine_manager/machine_manager.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-04 12:27:40 +01:00
Tyler Neely
24864ff7d2
Update src/coordinator/coordinator_worker.hpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-04 12:17:57 +01:00
Tyler Neely
8598f6edf4
Fix a race condition that happens when logging from a detached thread in the cluster property test. Improve the ShardManager dtor and log statements
2022-11-04 11:14:39 +00:00
jeremy
e41073bc2c
Update script to need single argument for local dataset
2022-11-04 09:17:09 +01:00
jeremy
14e3e72565
Correct badly written range
2022-11-04 08:52:47 +01:00
gvolfing
1cee7ecb8a
Make ShardRsm aware of trying to write the same vertex into the skip-list
2022-11-04 08:12:37 +01:00
Jeremy B
690a389563
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-03 17:43:47 +01:00
Tyler Neely
9203616283
Merge branch 'project-pineapples' into T1122-MG-ShardManager-ThreadPool
2022-11-03 17:01:07 +01:00
Tyler Neely
d198819bf1
Merge pull request #637 from memgraph/tyler_remove_storage_v2_durability_test
...
Remove unit tests for storage v2
2022-11-03 17:00:46 +01:00
jbajic
3a8f01af79
Fix expand one source vertex pk setting
2022-11-03 16:29:28 +01:00
Tyler Neely
7e6ec8bb26
Capture this instead of all references in scope for call to std::visit to route CoordinatorWorker messages
2022-11-03 14:38:16 +00:00
Tyler Neely
6138d76690
Remove unit tests for storage v2
2022-11-03 14:21:17 +00:00
Tyler Neely
25fdb1a1f0
Make the high_density_shard_create_scan test run much faster
2022-11-03 13:48:11 +00:00
Tyler Neely
2de1d6c359
Fix UB due to integer overflow
2022-11-03 13:27:45 +00:00
Tyler Neely
0364311dd0
Log latency histograms in the high_density_shard_create_scan test
2022-11-03 12:44:47 +00:00
Tyler Neely
9235515dab
Reduce high_density_shard_create_scan shard+thread combinations. Log Raft write request demangled names
2022-11-03 12:38:12 +00:00
Tyler Neely
b83fb287ad
Apply feedback from clang-tidy
2022-11-03 11:00:07 +00:00
jeremy
70dc19dfdb
Mgbench: apply filtering on results from client
2022-11-03 11:03:21 +01:00
Tyler Neely
b685a21171
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T1122-MG-ShardManager-ThreadPool
2022-11-03 09:42:28 +00:00
Tyler Neely
4db83b8159
Add a few safety checks to the new concurrent Queue structures and the promise maps in the transport layer
2022-11-03 09:41:28 +00:00
Tyler Neely
dd8dd4f6c4
Restructure responsibilities for assigning request ids to the transport handles. Simplify promise tracking to avoid replier addresses, enabling eventual direct server return (DSR)
2022-11-03 09:31:06 +00:00
Tyler Neely
fa1ddfea12
Fix a bug where the MachineManager's destructor became incorrect after being moved
2022-11-02 17:45:27 +00:00
Tyler Neely
a815ec9617
Handle Coordinator work on a separate thread, unblocking the MachineManager to route additional messages to Shards
2022-11-02 17:15:52 +00:00
Tyler Neely
78528bd609
Avoid the ShutDown explicit acknowledgement due to jthread already blocking on this
2022-11-02 17:12:21 +00:00
Tyler Neely
6239f4fc3e
Simplify usage of PromiseKey in LocalTransportHandle to avoid replier address
2022-11-02 17:11:26 +00:00
Jeremy B
c5eb3ff2c0
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-02 17:01:08 +01:00
János Benjamin Antal
9f71ce0f78
Merge pull request #635 from memgraph/MG-expand-fixes
2022-11-02 15:55:49 +01:00
János Benjamin Antal
589dd36bf2
Make function parameter constant
2022-11-02 14:44:54 +01:00
János Benjamin Antal
57e7169203
Eliminate dangling reference from lambda
2022-11-02 14:22:01 +01:00
János Benjamin Antal
bb3b053375
Create edge in the correct direction
2022-11-02 14:22:01 +01:00
János Benjamin Antal
a96f489756
Count the number of requests per operator
2022-11-02 14:22:01 +01:00
jeremy
e909e7d2d8
Format
2022-11-02 14:18:04 +01:00
Jeremy B
2d91a7fd1e
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-02 14:14:24 +01:00
Jeremy B
1d18f1197f
Update tests/mgbench/dataset_creator.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-11-02 14:14:16 +01:00
Jeremy B
edeebf46ec
Update tests/mgbench/benchmark.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-11-02 14:13:58 +01:00
Jeremy B
1148fe9aad
Update tests/mgbench/datasets.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-11-02 14:13:40 +01:00
János Benjamin Antal
c92c795b1a
Merge pull request #632 from memgraph/MG-improve-parameters
2022-11-02 14:06:30 +01:00
János Benjamin Antal
0fee412f92
Merge branch 'project-pineapples' into MG-improve-parameters
2022-11-02 13:37:35 +01:00
Tyler Neely
7596e85358
When message conversion fails to happen, demangle the concrete type name and error log a useful message
2022-11-02 12:37:34 +00:00
Jeremy B
014836ca3c
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-02 12:51:12 +01:00
Tyler Neely
68654b5a19
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T1122-MG-ShardManager-ThreadPool
2022-11-02 10:55:18 +00:00
János Benjamin Antal
4d96bf5006
Merge pull request #628 from memgraph/T1138-MG-fix-edge-id-allocator
...
Fix passing of edge IdAllocator not by value but as pointer
2022-11-02 10:40:35 +01:00
Marko Budiselić
9bb70eb0b9
Merge branch 'project-pineapples' into T1138-MG-fix-edge-id-allocator
2022-11-01 19:38:10 +01:00
Marko Budiselic
0ff389ffc4
Add 3d gnuplot script
2022-11-01 19:33:12 +01:00
Jeremy B
7076788dd5
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-01 18:51:57 +01:00
Tyler Neely
ee4be9aa5b
Merge pull request #631 from memgraph/tyler_remove_shard_map_from_machine_manager
...
Remove redundant ShardMap copy from MachineManager to avoid race conditions
2022-11-01 18:33:37 +01:00
Jeremy B
96a2ad4b63
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-01 18:21:36 +01:00
Tyler Neely
84509fa477
Fix merge conflict with MachineManager constructor
2022-11-01 17:07:14 +00:00
Tyler Neely
19b5fe3caf
Merge branch 'project-pineapples' into tyler_remove_shard_map_from_machine_manager
2022-11-01 17:57:03 +01:00
Tyler Neely
74db669e23
Merge pull request #622 from memgraph/tyler_1k_shard_unit_test
...
Add test for 1k shards, 1k create vertices, and then a scan all
2022-11-01 17:56:42 +01:00
Tyler Neely
599802033f
Reformat TODO comment
2022-11-01 17:21:15 +01:00
Tyler Neely
6dd57426f8
Revert broken code suggestion
2022-11-01 15:51:37 +00:00
Tyler Neely
3c9f0c48e9
Merge branch 'project-pineapples' into tyler_1k_shard_unit_test
2022-11-01 16:31:29 +01:00
Tyler Neely
9a1258a708
Update tests/unit/1k_shards_1k_create_scanall.cpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-01 16:31:14 +01:00
Tyler Neely
c55ca836a4
Update tests/unit/1k_shards_1k_create_scanall.cpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-01 16:31:06 +01:00
Tyler Neely
5674ef4016
Update tests/unit/1k_shards_1k_create_scanall.cpp
...
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-11-01 16:30:37 +01:00
Tyler Neely
77c2afc9e7
Add TODO about ID mapping improvements
2022-11-01 15:27:35 +00:00
Tyler Neely
27292dd921
Merge branch 'project-pineapples' into tyler_remove_shard_map_from_machine_manager
2022-11-01 16:20:54 +01:00
Jeremy B
e4f1fd8647
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-11-01 16:06:44 +01:00
János Benjamin Antal
4608af9d00
Merge branch 'project-pineapples' into MG-improve-parameters
2022-11-01 15:56:16 +01:00
János Benjamin Antal
50e72a7c28
Merge branch 'project-pineapples' into T1138-MG-fix-edge-id-allocator
2022-11-01 15:56:12 +01:00
János Benjamin Antal
17a104677d
Merge pull request #617 from memgraph/T1105-MG-profile-query-in-distributed
2022-11-01 15:55:52 +01:00
Tyler Neely
a6add80fc9
Use static RSM partitioning function for achieving a smooth Shard->ShardWorker distribution
2022-11-01 14:52:38 +00:00
Tyler Neely
5d3eaf6a55
Rename 1k_shards_1k_create_scanall test to high_density_shard_create_scan
2022-11-01 14:02:07 +00:00
Tyler Neely
a13f260236
Parameterize shard worker threads in the MachineConfig and simplify test output
2022-11-01 13:57:57 +00:00
jeremy
1f778ba5f3
Add possibility to give extra tests arg to MGBench
2022-11-01 14:14:55 +01:00
jeremy
787987168c
Make benchmark work with any customer datasets
2022-11-01 12:51:01 +01:00
János Benjamin Antal
7b4b1ba8ed
Speed up Parameters::AtTokenPosition
2022-11-01 11:51:35 +01:00
Tyler Neely
bb1e8aa164
Improve histogram output by adding a pretty table printing function
2022-11-01 10:46:25 +00:00
Tyler Neely
27a1311966
Merge branch 'tyler_1k_shard_unit_test' of github.com:memgraph/memgraph into T1122-MG-ShardManager-ThreadPool
2022-11-01 09:49:15 +00:00
János Benjamin Antal
30ff6487f2
Merge remote-tracking branch 'origin/project-pineapples' into T1105-MG-profile-query-in-distributed
2022-11-01 10:32:44 +01:00
Tyler Neely
119da2d7a7
Update CMakeLists.txt
2022-11-01 09:51:43 +01:00
Tyler Neely
fa972813d2
Update src/coordinator/shard_map.cpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-31 19:05:19 +01:00
Tyler Neely
951b058116
Complete migration from single-threaded ShardManager to multi-threaded ShardWorker processing
2022-10-31 18:04:30 +00:00
Tyler Neely
d0cad6e6ba
Temporarily duplicate shard management logic from ShardManger in ShardWorker
2022-10-31 17:25:08 +00:00
Tyler Neely
6138277972
Merge branch 'tyler_remove_shard_map_from_machine_manager' of github.com:memgraph/memgraph into T1122-MG-ShardManager-ThreadPool
2022-10-31 17:14:01 +00:00
Tyler Neely
2f77eb96ff
Remove redundant ShardMap copy from MachineManager to avoid race conditions
2022-10-31 16:49:46 +00:00
Tyler Neely
d7bc93c55f
Fill Cron next time promise from each worker thread
2022-10-31 16:17:34 +00:00
Tyler Neely
039d5f51d3
Merge branch 'project-pineapples' into T1122-MG-ShardManager-ThreadPool
2022-10-31 17:06:36 +01:00
Tyler Neely
cebe6f62fa
Implement skeleton worker threadpool for the ShardManager
2022-10-31 16:03:47 +00:00
jbajic
6834ce01fe
Fix edge id allocator
2022-10-31 16:26:56 +01:00
jeremy
4c5cd1f847
Add possibility to have MgBench working against local file
2022-10-31 16:10:04 +01:00
János Benjamin Antal
f9e2a66961
Add const qualifier to function parameters
2022-10-31 15:53:04 +01:00
János Benjamin Antal
d5700ab5ff
Use [[unlikely]] attribute
2022-10-31 15:53:04 +01:00
Tyler Neely
b0aaba6765
Merge branch 'project-pineapples' into tyler_1k_shard_unit_test
2022-10-31 15:47:38 +01:00
jeremy
e1f18f3733
Update location of Pokec datasets on aws
2022-10-31 15:19:34 +01:00
jeremy
c90b38faf0
Update aws address for datasets
2022-10-31 14:49:32 +01:00
jeremy
acbf3c764c
Remove arg from __init__
2022-10-31 13:35:41 +01:00
jeremy
37df41796f
git puMerge branch 'T1079-MG-add-simple-query-to-benchmark_v2' of github.com:memgraph/memgraph into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-31 13:02:12 +01:00
jeremy
f04e1cda4b
Add function
2022-10-31 13:02:05 +01:00
Jeremy B
f28ba89584
Update tests/mgbench/dataset_creator.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-31 13:01:42 +01:00
jeremy
60485311c8
Merge branch 'T1079-MG-add-simple-query-to-benchmark_v2' of github.com:memgraph/memgraph into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-31 12:57:46 +01:00
Jeremy B
36a1c43851
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-31 12:57:41 +01:00
Jeremy B
bae8c084b1
Update tests/mgbench/datasets.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-31 12:56:02 +01:00
Jeremy B
2898120eeb
Update tests/mgbench/datasets.py
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-31 12:55:42 +01:00
jeremy
d62a45752a
Remove unused variable
2022-10-31 12:55:38 +01:00
jeremy
c5ee6ffbc2
Update dataset_creator script
2022-10-31 12:41:28 +01:00
jeremy
5ef08f841a
Update Dataset creation script
2022-10-31 11:56:20 +01:00
Kostas Kyrimis
59c7d81ae8
[ 🍍 < T1086-MG] Test distributed operators e2e ( #607 )
...
* Fix Explain queries
* Add Vertex/Edge accessor support for properties
* Fix projections
* Fix expansions to fetch destination vertex properties
* Fix improper use of ShardMap on bolt and replaced it with the ShardRequestManager
* Add NameToId mappers on ShardRequestManager
* Add e2e tests for operators
* Fix OPTIONAL MATCH
2022-10-31 11:52:20 +02:00
jeremy
03c095e780
Update assert
2022-10-31 10:52:06 +01:00
Jeremy B
b542e49b3e
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-31 09:44:34 +01:00
Jeremy B
ddb30f49ea
Update datasets.py
2022-10-31 09:43:22 +01:00
János Benjamin Antal
d920d7c293
Merge branch 'project-pineapples' into T1105-MG-profile-query-in-distributed
2022-10-31 09:27:05 +01:00
jeremy
b2e9717ec3
Factor HandleRead(msgs::ExpandOneRequest..
2022-10-28 15:31:29 +02:00
jeremy
e0f6c951c1
Add possibilty to orderByElement on vector<VertexAccessor>
2022-10-28 15:31:15 +02:00
jeremy
7e35c71c58
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-10-28 13:22:54 +02:00
Jeremy B
b6814b7a49
Update src/storage/v3/shard_rsm.cpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-28 13:22:49 +02:00
jeremy
903e29a081
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-10-28 13:22:12 +02:00
Jeremy B
1c17692a26
Update src/storage/v3/shard_rsm.cpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-28 13:22:07 +02:00
jeremy
34fbaa0aee
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-10-28 13:21:52 +02:00
Jeremy B
476e2670d5
Update src/storage/v3/request_helper.cpp
...
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-10-28 13:21:48 +02:00
jeremy
be7aa55686
Add std::move
2022-10-28 13:21:43 +02:00
jeremy
46388ad35c
Correct compilation
2022-10-28 13:10:00 +02:00
jeremy
0d5ee49e19
Correct test expectation
2022-10-28 12:55:56 +02:00
jeremy
74181114c2
Remove un-necessary variable
2022-10-28 12:55:47 +02:00
jeremy
009c1b4074
Replace include
2022-10-28 12:55:23 +02:00
jeremy
d0b8b27c29
Rename ordered->sorted
2022-10-28 12:52:37 +02:00
jeremy
79c2ae206f
Update FillEdges usage (for compilation)
2022-10-28 11:24:41 +02:00
Tyler Neely
6b0168cb3d
Add LocalTransport::ResponseLatencies
2022-10-28 08:51:12 +00:00
Tyler Neely
03cf264b76
Add test for 1k shards, 1k create vertices, and then a scan all
2022-10-28 08:29:27 +00:00
Tyler Neely
9448e23dc9
Check-in basic shard scheduler skeleton
2022-10-27 13:36:53 +00:00
Jeremy B
fa6129dc2b
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-26 15:59:15 +02:00
Tyler Neely
eafccaea84
Add a logarithmically bucketing histogram and record response latencies per message type ( #616 )
2022-10-26 15:57:11 +02:00
János Benjamin Antal
0c4f591b3c
Merge branch 'project-pineapples' into T1105-MG-profile-query-in-distributed
2022-10-26 14:48:27 +02:00
Jeremy B
aeed7c32f9
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-26 11:32:44 +02:00
János Benjamin Antal
534e365271
Suppress warning about exception escape for destructor
2022-10-26 11:22:27 +02:00
János Benjamin Antal
281ae158ec
Make ReadTSC noexcept
2022-10-26 11:21:27 +02:00
János Benjamin Antal
39c9c215b1
Suppress clang-tidy warnings for
2022-10-26 11:14:24 +02:00
János Benjamin Antal
f6e78ce6da
Fix TODOs in storage engine ( #614 )
...
Fixed various TODOs that were easy to fix to improve the code quality of the
newly implemented storage.
2022-10-26 10:40:35 +02:00
Jeremy B
8e7118efde
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-26 08:39:21 +02:00
János Benjamin Antal
3cf79f5bbf
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-25 21:24:20 +02:00
János Benjamin Antal
6a31c49432
Flatten nested conditional statements
2022-10-25 20:30:29 +02:00
János Benjamin Antal
fea92f4829
Merge remote-tracking branch 'origin/project-pineapples' into T1105-MG-profile-query-in-distributed
2022-10-25 20:28:54 +02:00
János Benjamin Antal
1703cd039d
Populate custom data of profile query with request wait times
2022-10-25 20:15:06 +02:00
gvolfing
ca2351124b
Make primary labels act as label indices ( #605 )
...
Because of the lexicographical sharding, the primary labels themselves are
acting as indexes. If a primary label is specified in a MATCH query we can
safely narrow the range of shards we have to scan through based on that label.
This PR introduces the necessary changes in order to achieve that.
2022-10-25 19:48:17 +02:00
János Benjamin Antal
5784c0d473
Return the custom data for profile queries
2022-10-25 15:26:42 +02:00
János Benjamin Antal
8ebc704819
Fix profile queries with ScanAll
2022-10-25 14:37:18 +02:00
János Benjamin Antal
5939fb2b0c
Start transaction properly
2022-10-25 14:35:26 +02:00
János Benjamin Antal
ee64684b0b
Add ScopedCustomProfile
2022-10-25 13:37:57 +02:00
János Benjamin Antal
1e4c02f8a5
Make profile query work
2022-10-25 13:37:27 +02:00
János Benjamin Antal
8353228ba7
Upgrade json lib to 3.11.2
2022-10-25 13:10:03 +02:00
jeremy
cdab8828e4
remove else
2022-10-25 12:30:14 +02:00
jeremy
c1d0fddaac
Remove unnecessary else
2022-10-25 11:31:23 +02:00
jeremy
18423ce34d
remove includes
2022-10-25 11:01:04 +02:00
jeremy
b4f68e7a60
remove includes
2022-10-25 10:56:16 +02:00
jeremy
e901c1fdb7
Refactor code
2022-10-25 10:45:33 +02:00
Jeremy B
016b3ee0d2
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-25 10:30:22 +02:00
János Benjamin Antal
332afadf21
Split file parsing ( #600 )
...
Add temporary support for split files. This is only temporary solution until we
get the shard splitting implemented.
2022-10-25 10:27:13 +02:00
Tyler Neely
acc655f4fd
Model-based testing of simulated full cluster ( #584 )
...
This PR adds support for generating randomized workloads that will be executed
against a simulated cluster, as well as against a correctness model. Initially
this just generates ScanAll and CreateVertex requests, and anything that it
creates, it also inserts into a `std::set`, and when we do a ScanAll, it asserts
that we get the same number of requests back. This will become much more
sophisticated over time, but it's already hitting pay-dirt.
2022-10-24 19:54:09 +02:00
jeremy
862af55266
Remove #NoCommit
2022-10-24 16:39:38 +02:00
jeremy
33c9ccee66
Adapt test
2022-10-24 16:38:28 +02:00
jeremy
8b9e7e2c65
Correct behavior of batch limit (was size_t)
2022-10-24 16:23:42 +02:00
jeremy
51e6802aa7
Safeguard in case ComputeExpression is called without opt
2022-10-24 15:44:57 +02:00
jeremy
386a0c5686
add comment
2022-10-24 15:44:37 +02:00
jeremy
994aab8774
Merge branch 'T1083-MG-limit-and-order-expand-one_v3' of github.com:memgraph/memgraph into T1083-MG-limit-and-order-expand-one_v3
2022-10-24 12:08:38 +02:00
jeremy
8112957a35
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-24 12:08:02 +02:00
jeremy
b82e8748ad
Attempt impl
2022-10-24 12:03:51 +02:00
Jeremy B
cb00b43ca7
Merge branch 'project-pineapples' into T1083-MG-limit-and-order-expand-one_v3
2022-10-21 18:17:34 +02:00
jeremy
55e0dbca80
Add limit to ExpandOne
...
Add missing pragma
Add test
Merge conflicts
2022-10-21 16:32:49 +02:00
Tyler Neely
12e7a261aa
operator<< implementations for a few foundational types (#604 )
2022-10-21 15:25:40 +02:00
Marko Budiselić
1c3bb969e9
Decouple interactive planning manual test ( #585 )
2022-10-21 13:34:13 +02:00
Jure Bajic
e5437080c5
Handle OrderBy in ScanVertices request ( #594 )
...
- Refactor shard_rsm and move function into expr.hpp/expr.cpp and request_helper.hpp/request_helper.cpp
2022-10-21 12:33:40 +02:00
Tyler Neely
17090dd8ac
Load SPDLOG_LEVEL environment variable in unit tests binaries ( #606 )
...
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-10-20 18:27:52 +02:00
gvolfing
281cebd386
Add filtering capabilities to ExpandOne request ( #581 )
2022-10-20 17:51:44 +02:00
János Benjamin Antal
f89a2bbf42
Make ExpandOne work in the query engine ( #589 )
2022-10-20 11:35:00 +02:00
gvolfing
85b8ce9101
Implement filtering capabilities for ScanAll ( #578 )
...
ScanVerticesrequest was not able to utilize filtering capabilities
before. With these modification it is now able to filter the scanned
vertices based on the filter_expressions field in the
ScanVerticesRequest message type.
2022-10-19 16:09:00 +02:00
Jure Bajic
6bb40a7f49
Create ExpandOne request ( #580 )
...
Refactor CreateEdge into CreateExpand
2022-10-19 13:55:46 +02:00
Jeremy B
1707ee648e
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-19 08:47:13 +02:00
gvolfing
07f34838bd
Add e2e test to check ScanAll on new architecture ( #603 )
...
Add testing capabilities similar to what existed before on the older
architecture. With this test specifically, test if we can create
vertices and return them with ScanAll. There is a hard-coded 3s wait in
the test which is needed because the MachineManager need this time to
initialize itself.
2022-10-18 21:38:56 +02:00
Jeremy B
b6f8b5e130
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-18 15:49:19 +02:00
jeremy
58243f4a26
Rename User->File
...
Use parser for argument i.o. simple variable in script
2022-10-18 15:47:13 +02:00
gvolfing
d06132cb33
Make ShardRequestManager work with futures ( #588 )
...
The communication between the ShardRequestManager and the RsmClient
used to be direct. In this PR this changes into a future-based
communication type. The RsmClient stores state about the currently
processed future (either read or write request) and exposes blocking
and non-blocking functionality to obtain the filled future. The
ShardRequestManager -for now- will send of the set of requests present
in the ExecutionState and block on each of them until the requests are
completed or the set of paginated responses(caused by, for example the
batch-limit in ScanAll) are ready for the next round.
2022-10-18 09:53:37 +02:00
Jeremy B
f063c1b1ad
Merge branch 'project-pineapples' into T1079-MG-add-simple-query-to-benchmark_v2
2022-10-17 11:41:55 +02:00
Marko Budiselić
5347c06d76
Add shutdown of LocalSystem during the shutdown process ( #592 )
2022-10-14 11:59:50 +02:00
Tyler Neely
4634ac484a
Optimize simulator RNG usage ( #590 )
...
This causes instructions for `basic_request.cpp` to drop from 281 million to 28 million
2022-10-12 19:19:06 +03:00
jeremy
a5dc818e19
Add new dataset for mgbench
2022-10-12 16:35:47 +02:00
Jeremy B
4cb3b064c4
Add filter to scan all ( #575 )
...
Add several versions of ScanAll with filters.
Add helper function to transform an expression into string that can be parsed again once on the storage.
2022-10-12 11:46:59 +02:00
Jure Bajic
23171e76b6
Integrate bolt server ( #572 )
...
* Use query-v2 in the main executable
* Set up machine manager in memgraph
* Add `ShardRequestManager` to `Interpreter`
* Make vertex creation work
* Make scan all work
* Add edge type map in shard request manager
* Send schema over request
* Empty out DbAccessor
* Store shard mapping at creation
* Remove failing CI steps
Cooltura is the best place in Zagreb!
Co-authored-by: János Benjamin Antal <benjamin.antal@memgraph.io >
2022-10-11 16:31:46 +02:00
Jeremy B
6fd64d31f2
Update usage of Shard ( #574 )
...
Updating tests to use new constructor of Shard
Commenting test shard_request_manager
2022-10-05 11:56:36 +02:00
gvolfing
87111b2f89
Implement missing message handlers ( #563 )
...
Implement the missing message handlers with basic functionality. The
implementation does not include any capabilities to filter based on
expressions.
2022-10-03 15:31:06 +02:00
Tyler Neely
b5c7078c7d
Stitch request manager with shard ( #570 )
...
Fix various bugs
2022-09-23 20:07:41 +02:00
Kostas Kyrimis
925835b080
Implement query engine client ( #531 )
...
- Add shard request manager
2022-09-22 15:05:43 +02:00
Tyler Neely
ce788f5f65
Machine manager and shard stitch ( #569 )
2022-09-22 13:55:16 +02:00
János Benjamin Antal
b8186bea2e
Lexicographically ordered storage ( #454 )
2022-09-21 18:58:31 +02:00
János Benjamin Antal
3c4856dcb7
Merge remote-tracking branch 'origin/project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-09-21 18:50:00 +02:00
Marko Budiselić
b4d6dc0930
Add proper transaction handling ( #550 )
2022-09-21 18:25:51 +02:00
Jure Bajic
817161a915
Implement expression evaluator in storage v3 ( #534 )
...
- Enable `mg-expr` in mg-storage-v3
- Adapt id_mapper
- Change conversion function from PropertyValue to TypedValue
- Remove memgraph functions
- Enable expression tests on for storage
2022-09-21 17:26:55 +02:00
Tyler Neely
58eb2caf0f
Add machine manager prototype ( #533 )
2022-09-21 16:57:25 +02:00
gvolfing
ecda71168c
Implement message based actions ( #538 )
...
Create shard-side handlers for basic messages
Implement the handlers for CreateVertices, CreateEdges and ScanAll. Use
or modify the defined messages to interact with individual Shards and
test their behavior. Shard is currently being owned by ShardRsm
instances. The two top level dispatching functions Read() and Apply()
are responsible for read- and write operations respectively. Currently
there are a handful of messages that are defined but not utilized, these
will be used in the near future, as well as a couple of handler
functions with empty implementations.
2022-09-20 11:15:19 +02:00
János Benjamin Antal
8e1f83acc9
Reference vertices by id in edges ( #532 )
2022-09-14 13:11:14 +02:00
jbajic
f910cb770c
Merge branch 'project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-09-09 12:39:28 +02:00
Kostas Kyrimis
38d0b89b04
Implement expression evaluator library ( #486 )
2022-09-07 18:15:32 +03:00
Jure Bajic
a2a6a3855b
Remove primary label from vertex ( #529 )
...
- Remove the primary label from vertex
- Pass vertex_validator instead of schema validator
- Fix vertex ctors
2022-09-07 13:36:10 +02:00
Jure Bajic
e9f0360fb3
Enable indices for storage v3 ( #528 )
...
- Enable indices in storage v3
- Add new test cases
- Change `CreateVertexAndValidate` to call `SetProperty` and `AddLabel`
2022-09-06 22:48:25 +02:00
János Benjamin Antal
fe4955447e
Merge branch 'project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-09-05 14:59:01 +02:00
Tyler Neely
1631c20df2
In memory shard map ( #505 )
2022-09-05 15:50:54 +03:00
János Benjamin Antal
947baedbe6
Merge remote-tracking branch 'origin/project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-09-02 11:41:03 +02:00
Kostas Kyrimis
c6447eb48b
Add shard requests responses ( #526 )
2022-09-01 18:54:47 +03:00
Jure Bajic
7e84744d07
Split storage and shards ( #519 )
...
- Rename storage to shard
- Add primary label and range for shard
- Remove id_mapper functionality from shard
- Adapt tests
2022-09-01 09:10:40 +02:00
Tyler Neely
c0d03888f4
Implement basic raft version ( #498 )
2022-08-30 15:07:34 +02:00
János Benjamin Antal
efb3c8d03d
Remove multi-threaded related logic and variables ( #460 )
...
* Remove logic that was necessary for optimal multi-threaded performance, such
as accumulating deleted object in local containers and appending them to a
global one, handling overlapping locking.
* Remove background GC thread.
* Remove mutexes, locks and atomics throughout storage.
2022-08-30 13:41:53 +02:00
Jure Bajic
95dbc022c0
Integrate schema and keystore ( #497 )
...
- Integrate schema and keystore on vertex creation
- Add GC test for storage v3
- Add tests for accessors
- Fix all tests related to this except for query v2
- Fix labels not returning primary label
2022-08-29 14:38:25 +02:00
Tyler Neely
a40403e3ce
Add local transport ( #512 )
...
* Create LocalTransport Io provider for sending messages to components on the same machine
* Move src/io/simulation/message_conversion.hpp to src/io/message_conversion.hpp for use in other Io providers
2022-08-29 13:49:51 +02:00
Tyler Neely
14c9e68456
Transport prototype ( #466 )
2022-08-12 08:24:32 +02:00
jbajic
68b26275a3
Merge branch 'project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-08-08 11:34:46 +02:00
jbajic
5012824e05
Address review comments
2022-08-04 11:45:16 +02:00
Jure Bajic
a12a1ea358
Move schema to storage v3 and query v2
...
* Move schema to storage v3
* Remove schema from v2
* Move schema to query v2
* Remove schema from query v1
* Make glue v2
* Move schema related tests to newer versions of query and storage
* Fix typo in CMake
* Fix interpreter test
* Fix clang tidy errors
* Change temp dir name
2022-08-04 09:50:02 +02:00
János Benjamin Antal
2891041468
Make storage use KeyStore ( #455 )
2022-08-03 18:10:58 +02:00
János Benjamin Antal
cc5ee6a496
Merge remote-tracking branch 'origin/project-pineapples' into E118-MG-lexicographically-ordered-storage
2022-08-02 08:19:43 +02:00
jbajic
f57f30c8cf
Merge branch 'project-pineapples' into E112-MG-implement-partial-schema
2022-08-01 10:46:11 +02:00
Jure Bajic
462daf3a2b
Enforce schema on vertex creation
...
- Separating schema definition from schema validation
- Updating vertex_accessor and db_accessors with necessary methods
- Adding a primary label to Vertex
- Adding schema tests
- Updating existing tests for storage v3, and deprecating old:
- interpreter => interpreter_v2
- query_plan_accumulate_aggregate => storage_v3_query_plan_accumulate_aggregate
- query_plan_create_set_remove_delete => storage_v3_query_plan_create_set_remove_delete
- query_plan_bag_semantics => storage_v3_query_plan_bag_semantics
- query_plan_edge_cases => storage_v3_query_plan_edge_cases
- query_plan_v2_create_set_remove_delete => storage_v3_query_plan_v2_create_set_remove_delete
- query_plan_match_filter_return => storage_v3_query_plan_match_filter_return
2022-07-29 13:38:17 +02:00
Marko Budiselic
2009fefc8a
Merge branch 'master' into project-pineapples
2022-07-28 15:36:51 +02:00
Marko Budiselić
eb3f96d1f6
Bring changes from master to project-pineapples ( #477 )
...
* Fix aggregation functions on `null` and group-by inputs (#448 )
* Upgrade Antrl to 4.10.1 and remove antlr_lock (#441 )
* Update clang-tidy job (#476 )
* Add parser stress test (#463 )
NOTE: Doing this to have buildable comments on the project-pineapples branch
Co-authored-by: gvolfing <107616712+gvolfing@users.noreply.github.com >
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-07-28 15:36:17 +02:00
Marko Budiselić
80e0e439b7
Add parser stress test ( #463 )
2022-07-26 20:54:56 +02:00
Jure Bajic
351258ace8
Update clang-tidy job ( #476 )
...
Update clang tidy job to only check the diff against the base branch
2022-07-26 16:53:56 +02:00
Marko Budiselić
74d3663821
Upgrade Antrl to 4.10.1 and remove antlr_lock ( #441 )
2022-07-26 08:31:38 +02:00
jbajic
264b233053
Merge branch 'project-pineapples' into E112-MG-implement-partial-schema
2022-07-22 11:48:45 +02:00
Jure Bajic
2ceaf59767
Create query engine v2 ( #444 )
...
Create version v2 of the query engine.
Adjust CMake and lisp files
Connect query engine v2 with storage engine v3
2022-07-19 12:28:19 +02:00
gvolfing
eb0b3141d5
Fix aggregation functions on null and group-by inputs ( #448 )
...
The `sum()` and `count()` functions were giving results different from the openCypher specification on null `input.` The aggregation functions also had a problem when they were used in a group-by context and were giving results that were not compliant with the openCypher specification.
2022-07-19 12:16:32 +02:00
János Benjamin Antal
c0bee760bf
git
2022-07-18 08:21:04 +02:00
Marko Budiselić
ff2f8031a9
Extend the PR template with the git message guide ( #451 )
2022-07-15 14:08:10 +02:00
Marko Budiselić
094d4f282d
Improve error-prone OS setup ( #428 )
2022-07-13 17:48:01 +02:00
Jure Bajic
3dd2657320
Create mgp python package ( #433 )
2022-07-12 10:54:23 +02:00
gvolfing
6fe474282a
Modify logaical operators to conform openCyper regarding checking against NULL in CASE expressions ( #432 )
...
* Make `IfOperator` return the `else_expression_` in case of `NULL`
* Add gql_behave tests
* Add gql_behave test to specifically check for the case when the test expression itself is null
2022-07-11 15:00:29 +02: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
Jure Bajic
3f4f66b57f
Create schema DDL expressions
...
* Add initial schema implementation
* Add index to schema
* List schemas and enable multiple properties
* Implement SchemaTypes
* Apply suggestions from code review
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
* Address review comments
* Remove Map and List
* Add schema operations in storage
* Add create and show schema queries
* Add privileges for schema
* Add missing keywords into lexer
* Add drop schema query
* Add schema visitors
* Update metadata
* Add PrepareSchemaQuery function
* Implement show schemas
* Add show schema query
* Fix schema visitor
* Add common schema type
* Fix grammar
* Temporary create ddl logic
* Fix naming for schemaproperty type to schema type
* Rename schemaproperty to schemapropertytype
* Enable Create schema ddl
* Override visitPropertyType
* Add initial schema implementation
* Add initial schema implementation
* Add index to schema
* List schemas and enable multiple properties
* Implement SchemaTypes
* Apply suggestions from code review
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
* Address review comments
* Remove Map and List
* Apply suggestions from code review
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
* Add verification on creation and deletion
* Rename DeleteSchema to DropSchema
* Remove list and map from lexer
* Fix grammar with schemaTypeMap
* Add privilege and cypher visitor tests
* Catch repeating type name in schema definition
* Fix conflicting keywords
* Add notifications
* Drop float support
* Finish interpreter tests
* Fix tests
* Fix clang tidy errors
* Fix GetSchema
* Replace for with transfrom
* Add cloning og schema_property_map
* Address review comments
* Rename SchemaPropertyType to SchemaType
* Remove inline
* Assert of schema properties
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-07-11 09:20:15 +02:00
Jeremy B
063e297e1e
Avoid usage of time.sleep ( #434 )
...
e2e python: added tooling function around `time.sleep()` that stops as soon as condition is fulfilled and will raise assert if timeout is reached
2022-07-08 10:47:18 +02:00
Jure Bajic
2998f92595
Add initial schema implementation
...
* Add initial schema implementation
* Add index to schema
* List schemas and enable multiple properties
* Implement SchemaTypes
* Apply suggestions from code review
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
* Address review comments
* Remove Map and List
* Apply suggestions from code review
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
Co-authored-by: Jeremy B <97525434+42jeremy@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
Co-authored-by: Kostas Kyrimis <kostaskyrim@gmail.com >
2022-07-08 10:33:43 +02:00
Ante Javor
86b1688192
Rewrite Python API comments and snippets ( #420 )
...
* Update comments
2022-07-07 15:05:56 +02:00
Jeremy B
f629de7e60
Save replication settings ( #415 )
...
* Storage takes care of the saving of setting when a new replica is added
* Restore replicas at startup
* Modify interactive_mg_runner + memgraph to support that data-directory can be configured in CONTEXT
* Extend e2e test
* Correct typo
* Add flag to config to specify when replication should be stored (true by default when starting Memgraph)
* Remove un-necessary "--" in yaml file
* Make sure Memgraph stops if a replica can't be restored.
* Add UT covering the parsing of ReplicaStatus to/from json
* Add assert in e2e script to check that a port is free before using it
* Add test covering crash on Jepsen
* Make sure applciaiton crashes if it starts on corrupted replications' info
Starting with a non-reponsive replica is allowed.
* Add temporary startup flag: this is needed so jepsen do not automatically restore replica on startup of main. This will be removed in T0835
2022-07-07 13:30:28 +02:00
Jeremy B
b737e53456
Remove sync with timeout ( #423 )
...
* Remove timout when registering a sync replica
* Simplify jepsen configuration file
* Remove timeout from jepsen configuration
* Add unit test
* Remove TimeoutDispatcher
2022-07-05 09:40:50 +02:00
János Benjamin Antal
1bdc32ba5d
Copy storage v2 to create storage v3 ( #416 )
...
* Copy storage v2 to v3
* Integrate v3 to cmake
* Fix clang-tidy warnings
* Add dummy unit test for storage-v3 to trigger build for code analysis builds
2022-07-05 08:20:59 +02:00
János Benjamin Antal
10ca68bb2a
Remove CODEOWNERS ( #427 )
...
Co-authored-by: Marko Budiselić <marko.budiselic@memgraph.com >
2022-07-04 16:42:36 +02:00
Jure Bajic
bfbd8538d4
Update docker release process ( #421 )
...
* Fix release directory
* Update release process
* Fix debian arm path
2022-07-04 16:10:33 +02:00
Jeremy B
3e0e17d469
Adding assert in e2e script to check that a port is free before using it ( #425 )
...
* Adding assert in e2e script to check that a port is free before using it
* Adding extra logging
2022-07-04 10:14:02 +02:00
Jeremy B
b57f91fcfc
Correct concurrency group ( #426 )
...
* Correct concurrency group
2022-07-01 16:53:41 +02:00
Jeremy B
066a96c0ae
Adding concurrency to cancel current workflow if one commits on the same branch. ( #424 )
...
* Adding concurrency to cancel current workflow if one commits on the same branch.
2022-07-01 15:47:50 +02:00
Jeremy B
1ae6b71c5f
Registering a replica with timeout 0 should not be allowed ( #414 )
2022-06-29 11:14:23 +03:00
János Benjamin Antal
21870a0e7e
Merge branch 'master' into project-pineapples
2022-06-23 14:49:14 +02:00
Jure Bajic
cbe15e7f44
Support Ubuntu 22.04 ( #411 )
...
* Fix toolchain url
* Add 22.04 os script
* Update centos-9 stream
* Update zlib
* Upgrade dotnet version
* Add libipt
* Update toolchain extension
* Add release container
* Remove CentOS 8
* Enable arm packaging
* Add centos 9 container
* Ignore missing python virtualenv
* Add virtualenvwrapper
* Rearrange order
* Install virtualenv without user
* Run virtualenv via python
* Add logrotate dependency
* Bump up checkout action version
2022-06-23 14:02:21 +02:00
Jeremy B
65a7ba01da
Add information on show replicas to express how up-to-date a replica is ( #412 )
...
* Add test
* Add implementation and adapted test
* Update workloads.yaml to have a timeout > 0
* Update tests (failing due to merging of "add replica state")
2022-06-23 10:22:57 +02:00
Kostas Kyrimis
7a2bbd4bb3
Remove ref from std::string_view ( #215 )
2022-06-21 17:18:43 +03:00
Jeremy B
589e0e098b
Forbid two replicas to point to the same ip port ( #406 )
2022-06-20 17:10:20 +03:00
Jeremy B
41d4185156
Add limit batches option to start stream query ( #392 )
2022-06-20 15:09:45 +03:00
Marko Budiselić
599c0a641f
Add replica state to SHOW REPLICAS ( #379 )
2022-06-20 13:28:42 +03:00
Tyler Neely
1fb49c4865
Add an uncatchable kill method to the python MemgraphInstanceRunner for testing abrupt failures ( #405 )
2022-06-15 12:16:11 +03:00
János Benjamin Antal
df1485aeec
Run clang-tidy also on our header files ( #402 )
2022-06-10 11:26:24 +02:00
Jure Bajic
b2e1056389
Fix websocket connection ( #403 )
...
* Fix websocket connection with other clients
2022-06-09 22:19:43 +02:00
Jeremy B
e4c9411e63
Correcting USE_JEMALLOC flag ( #401 )
...
* Correcting USE_JEMALLOC flag
* Removing references to jemalloc local copy in /libs
2022-06-09 18:55:28 +02:00
Jeremy B
a0bc1371dd
Adding "raw message" column to the result returned by CHECK STREAM query ( #394 )
...
* Adding "raw message" column to the result return by CHECK STREAM query
* Update way results of CHECK STREAM are built
* Adapting CHECK STREAM integration tests (Pulsar/Kafka) to run with new result structure
* Adding new tests covering the check stream functionality
* Uppercase constants in stream tests
* Reformat f-strings
2022-06-08 23:17:44 +02:00
Marko Budiselić
21ad5d4328
Fix SHOW REPLICATION ROLE and SHOW REPLICAS ( #376 )
2022-05-20 20:17:59 -07:00
Marko Budiselić
8e3ab1ad0f
Add frequent replica ping ( #380 )
2022-05-20 19:29:17 -07:00
Marko Budiselić
cccf32e79d
Add default commented values for Bolt SSL flags ( #398 )
2022-05-18 08:34:07 +02:00
Jure Bajic
22bd60c613
Fix shutdown call ( #395 )
...
* Fix shutdown not called
* Add ssl server tests
2022-05-18 07:50:06 +02:00
János Benjamin Antal
8059a3e653
Improve magic functions docs ( #391 )
...
* Improve documentation of magic functions
* Improve wording for decorators
2022-05-17 15:33:28 +02:00
Antonio Andelic
a7f4c98bea
Fix module symbol loading ( #335 )
...
* Use DEEPBIND
* Add dependency on libstdc++
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
Co-authored-by: Jure Bajic <jure.bajic@memgraph.com >
2022-05-13 11:43:10 +02:00
Jure Bajic
483f4d04bd
Update precommit hooks ( #393 )
...
* Add pre-commit
* Add clang pre-commit
* Install pre-commit in init
2022-05-11 21:07:04 +02:00
János Benjamin Antal
3e7aef432f
Improve docker-compose setup for running streams e2e tests locally ( #388 )
...
* Separate pulsar and kafka docker-compose files
* Add docker-compose for redpanda
* Add small docs how to use docker-compose files
2022-05-10 13:31:45 +02:00
Jeremy B
10ea9c773e
Making mgp_error enum class when compiling c++. Remains enum when com… ( #389 )
...
* Making mgp_error enum class when compiling c++. Remains enum when compiling c.
2022-05-05 17:48:17 +02:00
Jeremy B
b782271be8
Fix shared module loading
...
* Moving function add_query_module from CMakeLists from tests/e2e/magic_functions to tests/e2e
* Adding failing test copying behavior when loading c module (.so) into memgraph.
* Fixing issue where NO_ERROR status returned MgpTransAddFixedResult was converted to false
* Removing unnecessary transformation
* removing incorrect parameterization of test
* re-adding parametrized transformation
2022-04-28 20:28:44 +02:00
Jure Bajic
a8ffcfa046
Update license year
...
* Update license year
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2022-04-27 13:31:37 +02:00
Jure Bajic
7b78665cd8
Implement Bolt over WebSocket with asio
...
* Replace server implementation with asio
* Add support for bolt over WebSocket
2022-04-27 10:13:16 +02:00
Josip Matak
4abaf27765
Memgraph magic functions ( #345 )
...
* Extend mgp_module with include adding functions
* Add return type to the function API
* Change Cypher grammar
* Add Python support for functions
* Implement error handling
* E2e tests for functions
* Write cpp e2e functions
* Create mg.functions() procedure
* Implement case insensitivity for user-defined Magic Functions.
2022-04-21 15:45:31 +02:00
Kostas Kyrimis
ea2806bd57
Implement foreach clause ( #351 )
2022-04-11 13:55:34 +03:00
Siniša Šušnjar
c8dbaf5979
Small io network socket fixes ( #360 )
...
* Modernize AddrInfo
* Modernize Socket
2022-04-08 14:38:13 +02:00
Jure Bajic
17049ada09
Resolve python dependency issues ( #372 )
2022-04-07 17:56:18 +02:00
Jure Bajic
1b619f51b2
Add docker release action ( #356 )
...
* Add docker release action
* Add debian-11 arm script
* Remove test prefix
* Update package_docker script
* Update release script
* Unify architecture extension
2022-04-07 15:23:18 +02:00
János Benjamin Antal
537855a0b2
Fix usages of constexpr ( #367 )
...
* Fix usages of constexpr
2022-03-31 13:52:43 +02:00
Jure Bajic
5822b44b15
Fix CentOS 7 release process ( #369 )
2022-03-31 07:20:53 +02:00
g-despot
bf01c58ed9
Update README.md
2022-03-22 04:50:01 +01:00
g-despot
89a5566f3f
Update README.md
2022-03-22 04:49:03 +01:00
g-despot
29452f8774
Update README.md
2022-03-21 16:49:02 +01:00
jbajic
60ad05acff
Address review comments
2022-03-14 15:47:41 +01:00
jbajic
4f593c7fca
Adapt precommit to run through all files
2022-03-14 15:47:41 +01:00
jbajic
770ea1189a
Fix SSL errors
2022-03-14 15:47:41 +01:00
jbajic
695bb343f1
Resolve clang-tidy error
2022-03-14 15:47:41 +01:00
jbajic
12b4ec1589
Add memgraph namespace
2022-03-14 15:47:41 +01:00
Antonio Andelic
b33d2c3940
use boost ssl
2022-03-14 15:47:41 +01:00
Marko Budiselić
477acad1f6
Update CODEOWNERS file ( #362 )
2022-02-25 13:42:27 +01:00
János Benjamin Antal
ddca2b40f5
Remove unimplemented function declaration ( #357 )
2022-02-24 11:49:22 +01:00
Antonio Andelic
4817be0add
Polishing for release
2022-02-17 14:47:11 +01:00
Jure Bajic
3fb7e5378d
Add websocket port argument ( #355 )
2022-02-17 10:36:15 +01:00
Antonio Andelic
1d88893715
Add Websocket e2e tests ( #353 )
2022-02-17 10:36:10 +01:00
Jure Bajic
bd2c30fddc
Websocket unit tests ( #334 )
2022-02-17 10:35:56 +01:00
Antonio Andelic
06e6ead4d2
WSS support ( #327 )
2022-02-17 10:35:56 +01:00
Jure Bajic
728b37080d
Fix authorization check ( #332 )
2022-02-17 10:35:56 +01:00
Antonio Andelic
48a531aac1
Add websocket authentication ( #322 )
2022-02-17 10:35:48 +01:00
Antonio Andelic
914fc1a656
Send logs over websocket ( #316 )
2022-02-17 10:31:26 +01:00
Antonio Andelic
1d1c182c2d
Add websocket server and log stream ( #314 )
2022-02-17 10:31:26 +01:00
János Benjamin Antal
c6e19ec09f
Fix folly in toolchain-v4 ( #346 )
2022-02-14 14:31:27 +01:00
János Benjamin Antal
693dab78d2
Remove unused URLs from libs/setup.sh ( #352 )
2022-02-11 13:56:43 +01:00
Antonio Andelic
69eca9b043
Procedures for handling modules ( #330 )
2022-02-11 11:29:41 +01:00
Antonio Andelic
5aeaad198b
Define SHOW VERSION query ( #265 )
2022-02-10 10:30:14 +01:00
Antonio Andelic
b23f88c607
Use gzip for packaging docker image ( #348 )
2022-02-07 15:50:43 +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
János Benjamin Antal
661e5185d8
Fix nested transaction error ( #339 )
2022-02-03 09:41:23 +01:00
Marko Budiselić
7348ad6800
Add init quicklisp proxy flag ( #342 )
2022-02-02 09:07:57 +01:00
János Benjamin Antal
6c00d146f2
Add configs for kafka streams ( #328 )
2022-01-31 17:26:53 +01:00
Antonio Andelic
ced84e17b6
Update nlohmann and remove guards ( #336 )
2022-01-26 08:12:09 +01:00
Jure Bajic
834ce5f51a
Remove support for deb9 ( #329 )
2022-01-25 12:23:50 +01:00
Antonio Andelic
bb1308acc7
Use libs from toolchain ( #326 )
2022-01-21 10:22:36 +01:00
János Benjamin Antal
e1f31d3d02
Toolchain v4 with fbthrift ( #318 )
2022-01-18 12:51:27 +01:00
Josip Matak
339cd9b84e
Change Python root directory ( #289 )
2022-01-18 08:23:17 +01:00
Antonio Andelic
7deac4ac8b
Extra procedures transformation info ( #310 )
2022-01-13 13:46:32 +01:00
Jure Bajic
fec887a67c
Adapt header-checker ( #323 )
2022-01-13 09:18:27 +01:00
Antonio Andelic
f3a3a4ed87
Unsafe git protocol fix ( #324 )
2022-01-12 11:36:06 +01:00
János Benjamin Antal
ec65187442
Use correct error in log message ( #321 )
2022-01-10 13:50:46 +01:00
János Benjamin Antal
079c0495c3
Increase reference count when returning Py_None ( #320 )
2022-01-07 12:56:52 +01:00
Kostas Kyrimis
90cfed2ada
Remove unnecessary use of string in server start method ( #317 )
2021-12-14 16:13:24 +01:00
Antonio Andelic
8716b8e992
Update to newest spdlog and fmt ( #309 )
2021-12-07 11:05:33 +01:00
Antonio Andelic
a277541354
Update debian base image ( #311 )
2021-12-07 10:10:04 +01:00
Antonio Andelic
b01564f179
Update license date for 2.1.1 ( #312 )
2021-12-06 12:35:30 +01:00
Antonio Andelic
d9bb4e2e46
Use default values instantly for batch size/interval ( #306 )
2021-11-30 16:29:51 +01:00
János Benjamin Antal
05d0aee494
Avoid crash in case of loading old stream ( #302 )
2021-11-30 15:27:11 +01:00
Antonio Andelic
aabec99a8e
Procedure for stream configs ( #301 )
2021-11-29 08:56:10 +01:00
Antonio Andelic
d277dd49a3
Update stats with query modules ( #304 )
2021-11-26 15:31:25 +01:00
Antonio Andelic
18f9d19b18
Update pyyaml version ( #305 )
2021-11-25 10:12:33 +01:00
Antonio Andelic
530eed5c6d
Update change date ( #303 )
2021-11-24 16:26:35 +01:00
Antonio Andelic
12f4e0068a
Small polishing and fixes
2021-11-16 17:23:20 +01:00
Antonio Andelic
e8976e0f1c
Update mgp API for Pulsar ( #298 )
2021-11-16 16:00:25 +01:00
Kostas Kyrimis
6eb52581eb
Retry transaction on consumer ( #294 )
2021-11-16 15:58:36 +01:00
Antonio Andelic
8606e69fd6
Add support for type in show streams ( #300 )
2021-11-16 15:58:36 +01:00
Antonio Andelic
c7b045bffc
Pulsar e2e tests ( #296 )
2021-11-16 15:58:35 +01:00
Antonio Andelic
b66cc66503
Add support for Pulsar queries ( #292 )
2021-11-16 15:52:58 +01:00
Antonio Andelic
0e4719018a
Introduce pulsar dependency ( #286 )
2021-11-16 15:47:40 +01:00
Antonio Andelic
0ebd52aac3
Support for different consumers ( #280 )
2021-11-16 15:40:27 +01:00
Antonio Andelic
6c971b856e
Fix ORDER BY and temporal types ( #299 )
2021-11-16 10:59:25 +01:00
Kostas Kyrimis
6cb293688d
Fix check stream not reseting back to the correct offset ( #295 )
2021-11-15 14:44:30 +01:00
Jure Bajic
16709dff6c
Add stats and notifications in results metadata ( #285 )
2021-11-15 13:51:13 +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
47c0c629c7
Add procedure for setting a kafka stream offset ( #282 )
2021-11-11 12:07:58 +01:00
Kostas Kyrimis
636c551047
Remove linter concurrency-mt ( #287 )
2021-11-02 09:19:41 +01:00
Marko Budiselić
72384b2b71
Add internals pages link ( #288 )
2021-11-01 09:49:22 +01:00
Jure Bajic
a9b1ff9bea
Support Bolt v4.3 protocol ( #226 )
2021-10-28 13:05:09 +02:00
Jure Bajic
e40bc32624
Fix daily benchmark workflow ( #284 )
2021-10-27 09:05:46 +02:00
Antonio Andelic
bd21bc82b7
Add license to cpp/hpp/py test files ( #283 )
2021-10-26 08:53:56 +02:00
Jure Bajic
9c1680e82c
Change how to get branch name ( #281 )
2021-10-25 09:01:26 +02:00
Antonio Andelic
1a78c3695d
Support multiple types for weighted shortest path ( #278 )
2021-10-19 14:39:23 +02:00
Kostas Kyrimis
10196f3d7d
Add bootstrap servers to create stream ( #274 )
2021-10-18 10:49:00 +02:00
Jure Bajic
2c86fefbb5
Run diff on master ( #275 )
2021-10-18 08:40:07 +02:00
Antonio Andelic
df689dccd5
Make Memgraph work with fetch content ( #256 )
2021-10-14 18:58:42 +02:00
Jure Bajic
6033fbe9bd
Clean up topics before starting test ( #267 )
2021-10-14 16:57:46 +02:00
Jure Bajic
519a204424
Add retry to get_version script ( #268 )
2021-10-14 16:07:40 +02:00
Antonio Andelic
3fc5e57fef
Update dependency source when package all is called ( #272 )
2021-10-14 15:16:32 +02:00
János Benjamin Antal
906933d2b3
Fix typo in procedure C-API ( #273 )
2021-10-14 08:50:16 +02:00
Antonio Andelic
e9a937ad6d
Update license headers and change date ( #270 )
2021-10-13 10:06:07 +02:00
Antonio Andelic
6dc2cdfae4
Fix trigger with detach delete ( #266 )
2021-10-12 16:21:28 +02:00
g-despot
69ea410406
Add CONTRIBUTING and CODE_OF_CONDUCT ( #269 )
2021-10-12 14:11:07 +02:00
Kostas Kyrimis
24a576c8e9
Make write procedures trigger aware ( #262 )
2021-10-11 13:39:57 +02:00
Antonio Andelic
d417ffee6e
Update community build step ( #261 )
2021-10-08 14:36:17 +02:00
Antonio Andelic
f868b51483
Update mgconsole version ( #260 )
2021-10-08 11:19:21 +02:00
g-despot
26dc73c809
Update installation in README ( #263 )
2021-10-08 10:28:09 +02:00
g-despot
9119c89eba
Add updated startup message ( #259 )
2021-10-07 15:56:06 +02:00
Antonio Andelic
4e7ea34ae9
Add message with link utility ( #243 )
2021-10-07 14:51:30 +02:00
János Benjamin Antal
d7d291217b
Remove debug print ( #251 )
2021-10-07 09:14:05 +02:00
Marko Budiselić
42facfacbc
Add support for Debian 11 ( #212 )
2021-10-06 16:17:41 +02:00
János Benjamin Antal
bd1e848363
Add issue template ( #258 )
2021-10-06 11:52:15 +02:00
antonio2368
0ffb58b764
Fix docker packaging and add for platform build ( #257 )
2021-10-06 10:20:37 +02:00
g-despot
9551b6973a
Fix URL in build badge
2021-10-05 14:30:09 +02:00
Jure Bajic
f7ef5f50a4
Update workflow ( #255 )
2021-10-05 09:03:48 +02:00
Mislav Vuletić
046cd80054
Make readme awesome ( #228 )
...
Co-authored-by: antonio2368 <antonio2368@users.noreply.github.com >
Co-authored-by: Ivan Despot <ivan.g.despot@outlook.com >
2021-10-04 16:15:59 +02:00
Jure Bajic
9e678f8cbe
Add new memgraph licenses and move third party licenses ( #248 )
2021-10-03 12:26:48 +02:00
antonio2368
69e4f1784b
Small polishing for Release workflow ( #250 )
2021-10-03 11:09:57 +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
da68f86fc9
Add support for printing out in the ast temporal data values ( #227 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
738b5fb8d8
Add duration support for timestamp function ( #236 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
b45ae403e6
Define dump command for all temporal types ( #225 )
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
8d87e38c64
Add temporal type arithmetic for queries ( #214 )
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
Kostas Kyrimis
5abcb5081d
Define timestamp function that return temporal types in microseconds since epoch representation ( #205 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
9534dfb6ed
Change the timestamp function to return microseconds instead of milliseconds ( #204 )
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
e628b5ba6e
Add temporal types to TypedValue ( #176 )
2021-10-02 14:53:53 +02:00
antonio2368
5da32c1bff
Add TemporalData to PropertyValue ( #174 )
2021-10-02 14:53:53 +02:00
János Benjamin Antal
ccca46370d
Fix RWTypeChecker and some small improvements ( #247 )
...
* Fix doc of mgp_graph_vertices
* Make write_proc example meaningful write procedure example
* Improve wrap_exceptions
* Add check for write procedures for ReadWriteTypeChecker
* Change error code in case of invalid default value for optional arguments
2021-10-02 13:18:37 +02:00
János Benjamin Antal
e33fa5f9c0
Add example write procedure ( #244 )
2021-10-02 13:18:37 +02:00
János Benjamin Antal
721eefe263
Handle write procedures in queries and update docs of properties iterator ( #238 )
2021-10-02 13:18:36 +02:00
János Benjamin Antal
be9ed7e879
Python wrapper for write procedures ( #234 )
...
* Rename mgp_graph_remove to mgp_graph_delete
* Add mgp_graph_detach_delete
* Add PyGraph functions
* Add _mgp exceptions
* Use unified error handling in python wrapper
* Ignore clang-tidy warnings
* Add mgp.Graph, mgp.Vertex and mgp.Edge mutable functions
* Add python write procedure registration
* Add `is_write` result field to mg.procedures
* Use storage::View::NEW for write procedures
* Add simple tests for write procedures
* Remove false information about IDs
2021-10-02 13:17:41 +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
8dc3153fde
Don't strip queries after execute for CREATE TRIGGER only ( #245 )
2021-09-24 13:14:05 +02:00
antonio2368
b94e50bf1c
Use from_timestamp for WAL retention ( #240 )
2021-09-24 12:14:54 +02:00
antonio2368
9f855676cb
Add jemalloc purge ( #239 )
2021-09-21 14:43:27 +02:00
Jure Bajic
f560293657
Add Property Map support in CREATE clause ( #220 )
2021-09-09 12:39:13 +02:00
János Benjamin Antal
2afc1b99f6
New MGP API ( #219 )
2021-09-09 10:44:47 +02:00
antonio2368
5a8bda2531
Improve MERGE performance by using indices ( #213 )
2021-08-30 11:39:06 +02:00
Jure Bajic
0138d277d4
Improve serialization error message ( #208 )
2021-08-20 10:47:07 +02:00
János Benjamin Antal
09cfca35f8
Add privilege check in triggers and streams ( #200 )
2021-07-22 16:22:08 +02:00
Marko Budiselić
09c58501f1
Migrate release package to toolchain-v3 ( #191 )
2021-07-20 15:25:12 +02:00
Jure Bajic
945bbfdc49
Clean up containers ( #201 )
2021-07-19 08:40:28 +02:00
antonio2368
45ef069372
Create pull request template ( #199 )
2021-07-15 14:19:02 +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
János Benjamin Antal
7776160836
Add third party licenses ( #195 )
...
* Add third party licences
* Package the third-party licences
2021-07-08 08:55:09 +02:00
antonio2368
ae280fd8db
Polishing and fixes ( #196 )
...
* Remove SHOW from Memgraph lexer
* Change get_payload to payload
2021-07-07 18:04:17 +02:00
János Benjamin Antal
fb5a2ed4b6
Small improvements for streams ( #193 )
...
* Add timeout to CHECK STREAM
* Handle RdKafka::ERR__MAX_POLL_EXCEEDED in consumer
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com >
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com >
2021-07-07 16:19:59 +02:00
antonio2368
6cfec787dc
Allow dash in topic name ( #192 )
...
* Support dash in the topic names
* Add more topic names and consumer groups in tests
2021-07-07 16:19:59 +02:00
János Benjamin Antal
13c9bf76af
Add e2e tests for streams ( #190 )
...
* Add base of e2e tests
* Add python dependencies
* Explicitly close customer in destructor
* Parametrize tests and add test for CHECK STREAM
* Add tests for SHOW STREAMS
* Add test for concurrent start/stop during check
* Add test for calling check with an already started stream
* Run streams e2e tests on CI servers
Co-authored-by: antonio2368 <antonio2368@users.noreply.github.com >
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com >
2021-07-07 16:19:59 +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
ad32db5168
Use transformations in streams and CHECK STREAM ( #185 )
...
* Use the correct transformation result type
* Execute the result queries in streams
* Change the result type of parameters to nullable map
* Serialize transformation name
* Fix order of transformation parameters
* Use actual transformation in Streams
* Clear the Python transformations under GIL
* Add CHECK STREAM query
* Handle missing record fields properly
2021-07-07 16:19:59 +02:00
Kostas Kyrimis
a37755ce43
Add remaining query functionality SHOW STREAMS ( #184 )
...
* Add query functionality SHOW STREAMS
2021-07-07 16:13:26 +02:00
Kostas Kyrimis
a928c158da
Add python API for messages transformations ( #181 )
...
* Add python messages/transformations implementation
* Added fixed result return type to transformations
* Added is_deprecated to mgp_trans
2021-07-07 16:08:23 +02:00
János Benjamin Antal
ac230d0c2d
Add basic queries for managing streams ( #179 )
...
* Add CREATE, START, STOP and DROP queries
* Fix definition of port in replica query
* Explicitly stop the consumer before removing
* Fix offset committing in Consumer
* Add tests for basic stream queries
* Remove unnecessary WITH keywords from CREATE query
* Add tests
* Add STREAM privilege
* Disable not working test
The functionality is tested manually, but I couldn't make it work with
the mock kafka cluster.
* Add support for multiple topic names
* Replace skiplist by synchronized map
* Make Consumer::Test const and improve error handling
The improvement in the error handling is mostly done regarding to the
Test function. Instead of trying to revert the assignments, Test just
stores the last commited assignment. When Start or Test is called, they
check for the last commited assignments, and if it is saved, then they
try to restore it. This way:
1. All the failures are returned to the user (failed to save/restore)
2. Failed assignment cannot terminate Memgraph
* Make Test do not block creating/droping other streams
2021-07-07 16:08:22 +02:00
Kostas Kyrimis
d80ff745eb
Introduce mgp_trans api ( #175 )
...
* Added public interface for registering mgp_trans and extended modules accordingly
* Added test for mgp_trans
* Added mg.transformations() to the module registry
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com >
2021-07-07 15:57:36 +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
Kostas Kyrimis
4004e94ca1
Introduce messages C-API ( #168 )
2021-07-07 15:38:51 +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
3c9a46f823
Add Jure to CODEOWNERS ( #194 )
2021-07-07 12:35:28 +02:00
antonio2368
f994b68ad5
Increase default timeout to 10 minutes ( #186 )
2021-07-02 09:02:11 +02:00
antonio2368
3b336e3e0b
Add CREATE SNAPSHOT query ( #182 )
2021-06-30 12:31:30 +02:00
antonio2368
715162e205
Disable LOAD CSV with config ( #180 )
2021-06-30 11:19:13 +02:00
antonio2368
e016c74e4b
Trigger restore after query modules load ( #183 )
2021-06-30 10:01: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
cbf826e0c3
Load WAL on replica using transactions ( #95 )
2021-06-16 13:22:48 +02:00
antonio2368
644a3a0b2a
Codeowners update ( #173 )
...
* CODEOWNERS update
* clang-tidy changes trigger the diff
2021-06-15 13:21:05 +02:00
antonio2368
8cd9f696cf
Multiple isolation levels ( #171 )
...
This PR introduces READ COMMITTED and READ UNCOMMITTED isolation levels.
The isolation level can be set with a config or with a query for different scopes.
2021-06-14 15:47:57 +02:00
antonio2368
90a093bd95
Send py::Object as a reference to callback call ( #169 )
...
Sending the py::Object by value caused UB because multiple threads could copy the same object at the same time without the GIL.
By sending the object by reference we eliminate UB and avoid UB.
2021-06-10 10:40:18 +02:00
Marko Budiselić
542a324c96
Fix typing to cypher type impl inside mgp.py ( #159 )
2021-06-09 19:09:43 +02:00
Josip Seljan
cd03e13443
Upgrade Antlr to v4.9.2 ( #161 )
2021-06-09 12:50:27 +02:00
antonio2368
be91126134
Run the benchmarks daily ( #164 )
2021-06-08 08:44:12 +02:00
antonio2368
03cb007339
CHANGELOG redirects to the docs page ( #165 )
2021-06-07 16:26:15 +02:00
Kostas Kyrimis
524acb17a1
Add global version allocators for C in query modules ( #162 )
2021-06-07 14:45:05 +02:00
antonio2368
50f6e348dc
Disable google-runtime-references clang-tidy check ( #166 )
2021-06-07 10:40:56 +02:00
Josip Seljan
839d45b3f8
Remove louvain and connectivity modules ( #160 )
2021-06-02 11:10:16 +02:00
antonio2368
560eb04f67
Small trigger fixes ( #158 )
...
* Fix warning message
* Update version
* Run query callbacks only on pull
* Use warn level for failure of loading a trigger
2021-05-26 19:57:08 +02:00
János Benjamin Antal
a3ecc52429
Use all available predefined variables ( #157 )
2021-05-26 14:37:11 +02:00
János Benjamin Antal
e8a1d15a55
Add filtering based on registered event types ( #155 )
...
* Add filtering to TriggerContextCollector
* Add all predefined variable to ANY triggers
* Make variable names consistent with event types
2021-05-26 14:37:11 +02:00
János Benjamin Antal
1abee1ed3a
Use single thread for after triggers ( #154 )
2021-05-26 14:36:41 +02:00
János Benjamin Antal
5af3d0ff68
Add e2e tests for triggers ( #152 )
2021-05-26 14:36:41 +02:00
antonio2368
62a628c51f
Add trigger queries and trigger store ( #145 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io >
2021-05-26 14:36:41 +02:00
antonio2368
883f9c7ed3
Trigger event types ( #144 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io >
2021-05-26 14:13:14 +02:00
antonio2368
b459639968
Other predefined variables ( #143 )
2021-05-26 14:13:14 +02:00
antonio2368
11c0dde11c
Support removed vertices in the triggers ( #140 )
2021-05-26 14:13:14 +02:00
antonio2368
2f3fa656d9
Predefined variables ( #138 )
...
* Add support for injecting predefined variables in any scope
2021-05-26 14:13:14 +02:00
antonio2368
7bf40eb5d2
Add support for after commit triggers ( #136 )
2021-05-26 14:13:14 +02:00
antonio2368
7e44434cdf
Initial trigger definition ( #133 )
...
* Pull out cypher query parsing logic
* Define trigger structure
* Run triggers before commit
* Use skip list for saving triggers
2021-05-26 14:13:14 +02:00
Josip Seljan
2a0b0d969f
Replace mg_client with mgconsole ( #153 )
2021-05-26 11:59:36 +02:00
antonio2368
13ea35af2d
Fix permission for newer queries ( #156 )
2021-05-26 10:02:25 +02:00
Kostas Kyrimis
8a99670301
Add init toolchain-v3 script and support for zsh ( #149 )
2021-05-21 12:00:24 +02:00
Mislav Vuletić
c4555f5448
Fix Arch package help message typo ( #119 )
2021-05-20 16:04:50 +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
Marko Budiselić
1def0c9104
Fix libs/setup.sh nocached download ( #148 )
2021-05-13 12:05:36 +02:00
Marko Budiselić
782c377f5d
Add benchmarking GHA Diff job ( #147 )
2021-05-12 17:17:57 +02:00
Marko Budiselić
cc27a04139
Add bench-graph-client inside tools ( #139 )
2021-05-07 15:54:09 +02:00
Marko Budiselić
b71345655f
Add balancing of GHA jobs across runners ( #146 )
2021-05-07 13:37:45 +02:00
antonio2368
ccdd58b336
Fix parsing nested complex types ( #142 )
...
* Fix parsing of types for mgp.List
2021-04-27 08:31:18 +02:00
antonio2368
50b6afd73d
Fix clang tidy diff ( #141 )
...
* Ignore header files for clang-tidy-diff
* Rename code analysis job
2021-04-21 16:26:13 +02:00
Marko Budiselić
59105f68bd
Add primary and secondary dependency links ( #137 )
...
* Add explicit exit in case of git checkout or cherry-pick
2021-04-20 10:54:54 +02:00
antonio2368
8de31092ad
Add back the query memory limit logic ( #134 )
2021-04-13 10:41:50 +02:00
antonio2368
5c93f81881
Disable failing tests and add logs for replication e2e ( #132 )
...
* Disable sequential test
* Remove parent build and benchmark
* Save test data
* Save e2e logs in build folder
* Define different recovery time for each test
2021-04-02 12:29:10 +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
Marko Budiselić
7b5263d300
Fix release package script ( #131 )
2021-03-30 12:48:45 +02:00
Marko Budiselić
e8a41e4457
Add automated build of all Memgraph packages ( #123 )
2021-03-30 12:08:51 +02:00
antonio2368
27f09e1c0a
Make LOAD CSV query part separator ( #130 )
2021-03-29 16:40:55 +02:00
Josip Seljan
6dd9d32721
Fix scoped profile operator names for ScanAll operators ( #129 )
2021-03-28 09:27:02 +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
Marko Budiselić
92dfc93b20
Update community license ( #128 )
2021-03-26 18:19:48 +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
50ddd59450
Fix Centos8 build ( #126 )
...
* Increase server wait
* Use standard shebang for python scripts
2021-03-26 12:05:58 +01:00
antonio2368
60da033010
Use maximum number of threads for test ( #124 )
2021-03-25 08:19:00 +01:00
antonio2368
ee555b0c0d
Link jemalloc with Threads lib ( #122 )
2021-03-24 15:21:18 +01:00
antonio2368
e8e4cd7f97
Memory control e2e test ( #115 )
...
* Add memory control e2e test
* Fix cmake for jemalloc
2021-03-24 15:21:18 +01:00
antonio2368
ad4c80af13
Add memory limit clause for cypher queries ( #106 )
...
* Add memory limit clause for cypher queries
* Add PROCEDURE and QUERY keywords
* Improve memory limit logs
* Update CHANGELOG
2021-03-24 15:21:11 +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
Josip Seljan
b3914c6b5d
Update CHANGELOG.md ( #117 )
...
* Update CHANGELOG.md
Co-authored-by: jseljan <josip.seljan@memgraph.io >
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
dc5eb4befd
Fix module reload ( #114 )
...
* Fix module reload
2021-03-22 09:37:35 +01:00
antonio2368
593f7a3499
Add query module counters to telemetry ( #112 )
2021-03-18 11:03:42 +01:00
Marko Budiselić
77a0d7b8fa
Remove test_all_workers workflow ( #111 )
2021-03-16 17:01:59 +01:00
antonio2368
c240b5b564
Remove v1 driver test for python ( #109 )
2021-03-16 11:42:36 +01:00
Marko Budiselić
866ed45562
Add daily build for all major latest OSs ( #110 )
2021-03-16 09:13:50 +01:00
János Benjamin Antal
1598cb24ea
Add directory argument to get_version.py ( #107 )
...
* Add root-dir option to get_version.py
* Make CMake callable outside from the repository
2021-03-15 11:55:39 +01:00
antonio2368
35d789c56b
Allow multiple folders for query modules ( #105 )
...
* Allow multiple query modules directories as arg
2021-03-10 12:18:09 +01:00
antonio2368
16715d5005
Enable replication in community ( #104 )
...
* Enable replication in community
2021-03-10 10:36:38 +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
2e0dd19bac
Add machine-id to telemetry if not docker ( #103 )
...
* Add machine-id to telemetry if not docker
* Improve telemetry integration test
2021-03-08 15:15: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
antonio2368
435af8b833
Remove clang tidy from hooks ( #94 )
...
* Removed clang-tidy from hooks
* Improved clang-format output
* Remove lcp from types to format
2021-02-16 11:22:59 +01:00
antonio2368
cc1c1513ef
Increase column width ( #91 )
...
* Increase column width
* Prevent clang-format/tidy from triggering diff build
2021-02-12 16:58:55 +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
Marko Budiselić
42c245df8a
Fix CentOS8 packaging ( #87 )
2021-01-29 14:48:55 +01:00
Marko Budiselić
e4852cc5e3
Migrate release docs to Notion ( #86 )
2021-01-28 16:29:00 +01:00
Marko Budiselić
2caf0e617e
Remove docs/dev (migrated to Notion) ( #84 )
2021-01-26 20:08:40 +01:00
Marko Budiselić
90d4ebdb1e
Polish CI scripts ( #83 )
...
* Add Jepsen to the release workflow
* Increase the long-running stress timeout to 16 minutes
* Remove ha_client code
2021-01-26 18:57:23 +01:00
Marko Budiselić
151812da1a
Add v1.3.0 CHANGELOG ( #82 )
2021-01-26 18:27:23 +01:00
Marko Budiselić
1e10b9cb77
Merge pull request #11
...
* Add replication
* Add Jepsen tests
* Change from glog to spdlog
* Add LOCK DATA DIRECTORY
* Add query type deduction
2021-01-25 17:49:14 +01:00
Marko Budiselić
c44dbdda86
Remove --min-log-level from mgbench ( #81 )
2021-01-25 09:14:08 +01:00
Josip Seljan
46b1783618
Forbid write queries on a replica ( #80 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-25 09:13:32 +01:00
antonio2368
e866526c7a
Fix Centos build ( #79 )
...
* Don't run DocsHowToQuery.java on CentOS
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.com >
2021-01-24 08:17:21 +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
antonio2368
c0bd59bb09
Fix recovery process ( #78 )
...
* Use correct last loaded timestamp for WAL
2021-01-21 15:56:21 +01:00
antonio2368
a84ffe86c1
Add LOCK DATA DIRECTORY query ( #68 )
2021-01-21 15:56:21 +01:00
Josip Seljan
8f5b88f24a
Fix how query read/write type RWType is determined ( #71 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:56:21 +01:00
Marko Budiselić
afbf672915
Add end2end replication tests based on mgclient ( #69 )
...
* Remove old HA benchmark and integration tests
2021-01-21 15:56:21 +01:00
antonio2368
10c8256ec9
Fix epoch id handling ( #73 )
2021-01-21 15:56:21 +01:00
Josip Seljan
b19cd4f5d1
Fix advanced part in replication feature spec ( #75 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:56:21 +01:00
Josip Seljan
8fc9298832
Avoid crashing the db when the ip address is invalid in a REGISTER REPLICA query ( #74 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:56:21 +01:00
Marko Budiselić
9966ba1d52
Improve Jepsen run script ( #64 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:56:21 +01:00
antonio2368
b7bbd026de
Add large Jepsen test ( #67 )
...
* Fix WAL recovery step
2021-01-21 15:56:21 +01:00
antonio2368
855c2ea9ca
Add sequential test ( #66 )
2021-01-21 15:56:21 +01:00
antonio2368
adc355a22a
Small replication fixes ( #59 )
...
* Set state to invalid after exception
* Add proper locking
* Start background replicating only if in valid state
* Freeze transaction timestamp on replica
* Timeout fixes
* Fix Jepsen run script
* Disable perf checker and enable nemesis
* Add documentation for some chunks of code
* Decrease timeout so main doesn't hang on network partitions too long
2021-01-21 15:56:21 +01:00
Josip Seljan
bff9cf07de
Fix replication queries ( #65 )
...
* Fix replication query visitors
* Improve error handling in ReplQueryHandler methods
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:56:21 +01:00
antonio2368
60d742a2dc
Jepsen test infrastracture improvements and bank test ( #62 )
...
* Define replication config for tests
* Add support for final generator
* Add bank test
* Add host name resolution and basic replication setup
* Add timeout support
* Define helper macros for replication tests
* Add nemesis configuration
2021-01-21 15:56:21 +01:00
Josip Seljan
a0fb3fc463
Implement ReplicationQueryHandler class ( #52 )
...
* Refactor io::network::Endpoint class
* Add ParseSocketOrIpAddress static method to Endpoint class
* Implement ReplQueryHandler methods
* Add implementation of SetReplicationRole to ReplQueryHandler
* Fix PrepareReplicationQuery (create PullPlanVector)
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:56:21 +01:00
Marko Budiselić
f23e2e12c4
Add Jepsen initialization ( #53 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:56:21 +01:00
Josip Seljan
87e00f4fef
Add support for specifying the replica port to SET REPLICATION ROLE query ( #61 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:49:32 +01:00
antonio2368
f7b764607d
Improve error handling ( #56 )
2021-01-21 15:49:32 +01:00
antonio2368
200ce5f45e
Add configs and support for semi-sync and SSL ( #55 )
...
* Add config for replication client/server
* Add SSL to replication
* Add semi-sync replication
* Expose necessary information about replication
* Thread pool fix
* Set BasicResult value type to void
2021-01-21 15:49:32 +01:00
antonio2368
a0705746cb
Add epoch id and refactor replication client/server ( #51 )
2021-01-21 15:49:32 +01:00
Josip Seljan
4e36b646df
Replace "CREATE REPLICA" query with "REGISTER REPLICA" ( #50 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:49:32 +01:00
Josip Seljan
ec909ced57
Update nomenclature in the replication feature spec ( #47 )
...
* Update nomenclature in the replication feature spec
* Update the replication feature spec to contain the changes to the new replica registering syntax
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:49:32 +01:00
antonio2368
7e9175052a
Define communication process ( #49 )
...
* Add basic communication process using commit timestamp
* Add file number to req
* Add proper recovery handling
* Allow loading of WALs with same seq num
* Allow always desired commit timestamp
* Set replica timestamp for operation
* Mark non-transactional timestamp as finished
2021-01-21 15:49:32 +01:00
Josip Seljan
3c85319701
Update replication queries to follow the new replication nomenclature ( #48 )
...
* MODE -> ROLE
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:49:32 +01:00
antonio2368
76f0d5873b
Use unfinished tasks num instead of idle thread num ( #45 )
2021-01-21 15:49:32 +01:00
antonio2368
03cc568e39
Add support for async replication ( #41 )
...
* Add thread pool
* Define async replication
* Expose replication state
* Rename TransactionHandler to ReplicaStream
2021-01-21 15:49:32 +01:00
antonio2368
bc0c944910
Add replica recovery process ( #40 )
...
* Add file transfer over RPC
* Snapshot transfer implementation
* Allow snapshot creation only for MAIN instances
* Replica and main can have replication clients
* Use only snapshots and WALs that are from the Main storage
* Add flush lock and expose buffer
* Add fstat for file size and TryFlushing method
* Use lseek for size
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:49:32 +01:00
antonio2368
42f6118c00
Add safe file deletion utility FileRetainer ( #38 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:49:32 +01:00
antonio2368
b10255a12f
Add initial support for multiple clients ( #31 )
...
* Add tests for multiple clients
* Use variant for RPC server and clients
* Using synchronized list for replication clients, extracted variant access to a function
* Set MAIN as default, add unregister function, add a name for replication clients
* Use the regular list for clients
* Use test fixture so storage directory is cleaned
* Use seq_cst for replication_state
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:49:32 +01:00
Marko Budiselić
c68ed8d94e
Add implementation of synchronous replication ( #7 )
...
This implements the initial version of synchronous replication.
Currently, only one replica is supported and that isn't configurable.
To run the main instance use the following command:
```
./memgraph \
--main \
--data-directory main-data \
--storage-properties-on-edges \
--storage-wal-enabled \
--storage-snapshot-interval-sec 300
```
To run the replica instance use the following command:
```
./memgraph \
--replica \
--data-directory replica-data \
--storage-properties-on-edges \
--bolt-port 7688
```
You can then write/read data to Bolt port 7687 (the main instance) and also you
can read the data from the replica instance using Bolt port 7688.
NOTE: The main instance *must* be started without any data and the replica
*must* be started before any data is added to the main instance.
* Add basic synchronous replication test
* Using RWLock for replication stuff
Co-authored-by: Matej Ferencevic <matej.ferencevic@memgraph.io >
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2021-01-21 15:49:32 +01:00
Marko Budiselić
d5b02eafb1
Add syntactic support for replication queries - prototype ( #8 )
...
Extend parser to handle replication queries - first implementation.
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2021-01-21 15:49:32 +01:00
Marko Budiselić
1580c46abc
Write replication feature spec ( #6 )
...
Co-authored-by: Matej Ferencevic <matej.ferencevic@memgraph.io >
2021-01-21 15:49:32 +01:00
Marko Budiselić
367cb44983
Fix CentOS 8 powertools setup ( #76 )
2021-01-19 10:07:14 +01:00
Marko Budiselić
77bda187d2
Add install_all_apt environment util function ( #77 )
2021-01-15 09:26:15 +01:00
Marko Budiselić
57806544cd
Add new feature specs ( #43 )
2021-01-13 11:20:05 +01:00
antonio2368
7bff678cd9
Clear query executions if not in explicit transaction ( #70 )
2021-01-12 19:10:32 +01:00
Marko Budiselić
647388792a
Add upload of Diff binaries ( #58 )
...
* Check RESULT_VARIABLE after get_version script call
2020-12-21 16:41:46 +01:00
Marko Budiselić
b42ee31c1d
Add ability to specify the exact Python version ( #57 )
2020-12-21 13:21:51 +01:00
Marko Budiselić
53fa1482cb
Update GHA jobs tags ( #60 )
2020-12-07 15:02:14 +01:00
antonio2368
c5f722b724
Document defining constructors for member variables ( #54 )
2020-12-02 10:11:51 +01:00
Marko Budiselić
573b6cb045
Clean and upgrade openCypher and stress tests ( #27 )
...
* Add initial behave test improvements
* Make HTML human-readable
* Remove tutorial tests
* Migrate to neo4j-driver==4.1.1
2020-11-24 13:09:14 +01:00
Marko Budiselić
4afcf1b655
Remove release examples ( #42 )
2020-11-23 15:46:03 +01:00
antonio2368
4e7c569071
Migrate code to C++20 ( #44 )
2020-11-17 11:03:08 +01:00
Marko Budiselić
ea27ac9391
Update workflow documentation ( #36 )
...
Co-authored-by: antonio2368 <antonio2368@users.noreply.github.com >
2020-11-12 20:45:29 +01:00
Marko Budiselić
958bc870b3
Migrate to toolchain-v2 ( #33 )
...
* GCC_VERSION=10.2.0
* BINUTILS_VERSION=2.35.1
* GDB_VERSION=10.1 (except centos-7 8.3)
* CMAKE_VERSION=3.18.4
* CPPCHECK_VERSION=2.2
* LLVM_VERSION=11.0.0
* SWIG_VERSION=4.0.2
2020-11-12 20:18:11 +01:00
antonio2368
f0382c82cd
Potential memory leak fix ( #39 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-11-09 12:47:15 +01:00
Marko Budiselić
6fab357430
Upgrade cppitertools to v2.0 ( #17 )
2020-10-27 12:14:18 +01:00
antonio2368
f273be63a2
RPC client dangling reference fix ( #34 )
...
* Fix dangling reference
* Add docs for the dangling reference in lambda captures
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-26 13:33:48 +01:00
Marko Budiselić
9b984ab2f2
Add DISCARD fix to the CHANGELOG ( #32 )
2020-10-23 20:08:47 +02:00
Marko Budiselić
92bad4f62b
Add docs examples as driver tests ( #29 )
2020-10-23 18:02:33 +02:00
Marko Budiselić
126c9d697b
Fix pre-commit hook ( #30 )
2020-10-23 14:40:58 +02:00
Marko Budiselić
0478e89646
Fix package_deb_docker script ( #28 )
2020-10-23 09:37:41 +02:00
Marko Budiselić
814bb66ea6
Clean Memgraph repository ( #12 )
...
* Update documentation
* Update structure, CODEOWNERS, license files
* Update release/README
* Stop Actions if only docs file were updated
* Remove unused hidden files, move Doxygen logo
2020-10-21 18:56:15 +02:00
antonio2368
98f83e0c88
Rename mutex variable ( #26 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-20 17:26:07 +02:00
antonio2368
2e7d3822fe
Disable SSL by default ( #25 )
...
* Print the connection type used (with/without SSL)
* Update CHANGELOG
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-20 15:49:10 +02:00
antonio2368
0a7d4278b1
Fix older version of SSL ( #24 )
...
* Add manual locking callback for SSL
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-20 12:55:13 +02:00
Marko Budiselić
291158160d
Put all logrotate config to a file per offering ( #23 )
...
Not having one logrotate file produced an error during rpmlint. It makes sense
to have one logrotate file after Memgraph is installed because it's easier to
manage config files. There are two logrotate files in the codebase, one for
Community and one for Enterprise edition. Having rotate files per offering also
makes sense because offerings are affected less often compared to the features.
It's easier to maintain.
2020-10-17 20:10:55 +02:00
Marko Budiselić
e525818355
Add v1.2 changelog ( #18 )
2020-10-16 15:49:37 +02:00
antonio2368
0bcc1d67bc
Add support for Bolt v4(.1) ( #10 )
...
* Added handshake support
* Add support for v4 hello and goodbye
* Add support for pulling n results
* Add support for transactions
* Add pull n for the dump
* Add support for NOOP
* Add support for multiple queries
* Update bolt session to support qid
* Update drivers test with multiple versions and go
* Extract failure handling into a function
* Use unique ptr instead of optional for query execution
* Destroy stream before query execution
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-16 12:49:33 +02:00
antonio2368
42ac5d4ea3
Add datasets for music and StellarGraph tutorial ( #22 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-15 11:41:45 +02:00
Marko Budiselić
48587d6d5e
Improve NetworkX module import ( #21 )
...
* Improve NetworkX module import
* Add Networkx dependencies to Dockerfiles
2020-10-15 09:14:50 +02:00
Marko Budiselić
157590a294
Fix mgbench comparison script ( #20 )
2020-10-15 09:03:48 +02:00
Marko Budiselić
7f179dc462
Fix release Dockerfile ( #16 )
2020-10-08 10:59:49 +02:00
Marko Budiselić
594f3ec1b0
Add check for all remote workers ( #15 )
2020-10-08 09:01:31 +02:00
Marko Budiselić
804a44dd6c
Add check-build-system and a new workflow ( #14 )
2020-10-07 17:56:44 +02:00
antonio2368
1b50dc60f9
Add pre-commit hook ( #13 )
...
Co-authored-by: Antonio Andelic <antonio.andelic@memgraph.io >
2020-10-06 13:57:33 +02:00
llugovicmg
9d6b578237
Add the NetworkX query module ( #5 )
...
* Add __deepcopy__ for Properties
* Fix Vertices __contains__
* Check the incoming type in Vertex and Edge __eq__
* Add NetworkX support code
* Add NetworkX algorithms
* PageRank is now included in the nxalg module
* Rewrite graph analyzer to use NetworkX support code
* Don't make the error case be the "default" case
2020-10-01 20:51:55 +02:00
Josip Seljan
f7f861ca71
Add plan for label+property indexed node where property is not null ( #2 )
...
Replace ScanAll + Filter with a ScanAll variant performing label and property
lookup.
Co-authored-by: jseljan <josip.seljan@memgraph.io >
2020-10-01 13:22:21 +02:00
Matej Ferencevic
c12e4a49b1
Migrate deps to S3 ( #3 )
2020-09-22 19:52:26 +02:00
Matej Ferencevic
4c0fc11f69
Initial implementation of mgbench benchmarks ( #4 )
2020-09-22 18:55:28 +02:00
Matej Ferencevic
e0ffc533b9
Remove leftover Apollo files ( #1 )
2020-09-21 14:58:52 +02:00
Matej Ferencevic
0dcfdb9b89
Add GitHub workflows
2020-09-21 12:22:40 +02:00
Matej Ferencevic
1d973f7e31
Update dependencies in init script
2020-09-21 12:21:21 +02:00
Matej Ferencevic
4f4903803f
Fix CentOS environment dependencies
...
Differential Revision: https://phabricator.memgraph.io/D2821
2020-09-18 17:18:27 +02:00
Matej Ferencevic
ff0d5962e1
Add missing Clang component to environment setup
...
Summary: Update signing keys
Differential Revision: https://phabricator.memgraph.io/D2820
2020-09-18 13:58:01 +02:00
Matej Ferencevic
04ceb8d4b1
Implement valueType openCypher function
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2818
2020-09-08 16:49:53 +02:00
Matej Ferencevic
fb7025a716
Clean-up awesome memgraph functions error handling
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2817
2020-09-08 13:16:07 +02:00
Matej Ferencevic
89b6262fa4
Fix multiline query concatenation character
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2814
2020-09-04 13:18:55 +02:00
Matej Ferencevic
d2ff465f8e
Fix Cypher ID function Null handling
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2815
2020-09-04 13:18:08 +02:00
Matej Ferencevic
c12a87e9ca
Allow inheritance of storage durability decoder
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2810
2020-08-17 11:12:59 +02:00
Matej Ferencevic
63de0b5db4
Allow inheritance of storage durability encoder
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2809
2020-08-17 10:23:39 +02:00
Matej Ferencevic
dd9180da32
Add request streaming support to the RPC client
...
Summary:
This change only adds streaming support to the client request. The client
response, server request and server response are still handled only when all of
the data is received.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2807
2020-08-14 16:19:48 +02:00
Matej Ferencevic
aaf0c1ca08
Improve SLK
...
Summary:
SLK now correctly handles different CPU architectures (BIG/little endian).
Also, more string encoding functions have been added.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2806
2020-08-14 15:27:20 +02:00
Matej Ferencevic
1513a455de
Merge durability and storage
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2803
2020-08-14 15:08:43 +02:00
Matej Ferencevic
4f9e9aeafe
Move snapshot/WAL encoding/decoding into their respective files
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2761
2020-08-14 14:17:45 +02:00
Matej Ferencevic
857de23687
Split storage durability implementation into multiple files
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2760
2020-08-14 13:36:52 +02:00
Matej Ferencevic
fba5d75bf4
Increase build timeout for CPack
...
Differential Revision: https://phabricator.memgraph.io/D2798
2020-07-01 17:17:52 +02:00
Matej Ferencevic
478acb7934
Add changelog for version 1.1
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2796
2020-07-01 16:42:16 +02:00
Matej Ferencevic
df27b8477d
Remove unused UnwrapDegreeResult function
...
Reviewers: jseljan
Reviewed By: jseljan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2797
2020-07-01 13:05:55 +02:00
Matej Ferencevic
02d3a04ffa
Add Marvel Comic Universe tutorial data
...
Reviewers: buda, jseljan
Reviewed By: jseljan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2783
2020-07-01 10:41:47 +02:00
Matej Ferencevic
4a53a31fcf
Add FootballTransfers tutorial data
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2779
2020-07-01 09:24:35 +02:00
Matej Ferencevic
28590aea53
Fix variable expand between same symbol
...
Summary:
This diff fixes the variable expand operator to work correctly then the start
and destination nodes use the same symbol or when the destination symbol is an
existing symbol.
Previously, the variable expand operator produced paths that were both
completely wrong (they shouldn't have been produced) and nonexistent (they
didn't even exist in the storage). Invalid data was produced because of a
wrong equality check that was introduced in D1703.
This issue was reported externally and the supplied test case was:
```
CREATE (p1:Person {id: 1})-[:KNOWS]->(:Person {id: 2})-[:KNOWS]->(:Person {id: 3})-[:KNOWS]->(:Person {id: 4})-[:KNOWS]->(p1);
MATCH path = (pers:Person {id: 3})-[:KNOWS*2]->(pers) RETURN path;
```
Also, tests have been added so the behavior remains correct.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2793
2020-07-01 00:17:25 +02:00
Matej Ferencevic
0a2f2bfc90
Improve expansion performance
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2794
2020-06-29 16:37:11 +02:00
jseljan
a7b672ebbf
Add TCK tests relating predicate functions
...
Summary:
Implement TCK regression-like tests relating 'any', 'all', and 'none'
predicate functions
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2791
2020-06-29 12:56:59 +02:00
jseljan
9831f0396a
Fix 'all' and 'single' functions; update their unit and TCK tests
...
Summary:
Semantics of 'all' and 'single' were updated to be
consistent with that of 'any' and 'none'
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2789
2020-06-24 13:43:25 +02:00
jseljan
8bfebfca9d
Add 'none' function implementation, its unit and TCK tests
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2788
2020-06-23 13:06:06 +02:00
jseljan
21cee1eaec
Fix any function implementation
...
Summary: Change any function's handling of Null elements in a list
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2787
2020-06-19 15:40:57 +02:00
jseljan
098333f735
Add prototype implementation of the any function
...
Summary: Add any function prototype - no tests
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2785
2020-06-10 17:01:24 +02:00
Matej Ferencevic
3dd393f8eb
Fix multi-command transaction handling
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2784
2020-06-10 12:25:41 +02:00
Matej Ferencevic
6628d20e5a
Make DUMP DATABASE work correctly in explicit transactions
...
Summary:
`DUMP DATABASE` used a separate transaction to read database data. That
wouldn't be an issue if the query was correctly disallowed in multicommand
transactions. Because it was allowed the output wasn't transactionally correct.
Instead of disabling `DUMP DATABASE` in multicommand transactions this change
fixes it so that it works properly in multicommand transactions.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2781
2020-06-08 15:56:16 +02:00
Matej Ferencevic
b923d2bc36
Integrate property store
...
Reviewers: buda
Reviewed By: buda
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2764
2020-06-01 14:11:11 +02:00
Tonko Sabolcec
3932376301
Return properties as a list in SHOW CONSTRAINT INFO for unique constraints
...
Summary:
Before this change properties were joined by ", " and returned as a single string,
which was ambiguous for properties that contain ", ". This diff solves this
problem by returning properties as a list type.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2778
2020-05-29 12:59:33 +02:00
Marko Budiselic
d36da12b48
Update enterprise license
...
Summary:
In case something has to be updated in `release/LICENSE_ENTERPRISE.md`
please put your comments in the document marked with `UPCOMING`
inside this https://drive.google.com/drive/folders/1GbnryzrjkmNDVigac4d1x__JWbiqlxMD
folder because the content has to be valid from the legal standpoint
(it requires some legal review).
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2770
2020-05-27 19:13:30 +02:00
Matej Ferencevic
a149f5bd81
Improve environment setup script
...
Summary:
The following improvements are in this diff:
- Verify that run dependencies are correct
- Setup gdbinit and install pahole
- Add curl to CMake to enable HTTPS
- Use HTTPS for LLVM download
- Fix Debian 9 and Ubuntu 18.04 dependencies
- Fix CentOS 7 sha256sum verification
- Add support for Debian 10
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2776
2020-05-25 11:05:01 +02:00
Matej Ferencevic
1a8ae7f9c2
Suppress empty query modules directory errors
...
Reviewers: llugovic, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2771
2020-05-25 10:09:40 +02:00
Matej Ferencevic
b510ac1049
Fix WeightedShortestPath integer overflows
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2775
2020-05-25 10:09:19 +02:00
Tonko Sabolcec
59bc9d8989
Fix label/edge/property name escaping in DUMP DATABASE
...
Summary:
This diff fixes the issue for label name (and edge type/property)
with spaces and special characters to avoid possible OpenCypher injections.
Consider an example where label name is 'hello :world'. `DUMP DATABASE`
used to return query which creates a node (u:hello :world) - i.e. node
that contains two labels 'hello' and 'world'. This fix escapes names to
create the following node with exactly one label as expected:
```
(u:`hello :world`)
```
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2774
2020-05-21 14:46:51 +02:00
Matej Ferencevic
b6dfb44b4c
Fix various integer overflows in query
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2773
2020-05-21 14:30:01 +02:00
Matej Ferencevic
81ad5110ff
Fix LIMIT and SKIP overflow bugs
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2772
2020-05-21 10:39:01 +02:00
Matej Ferencevic
f92dee6e7b
Fix COUNT overflow bug
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2769
2020-05-20 16:57:17 +02:00
Matej Ferencevic
f047f55020
Implement IsPropertyEqual for property store
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2768
2020-05-20 15:41:13 +02:00
Lovro Lugovic
0c42bedf2f
Add support for rescanning query modules
...
Reviewers: mferencevic, buda
Reviewed By: mferencevic, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2765
2020-05-13 21:33:28 +02:00
Matej Ferencevic
7d9f741ceb
Add missing optional check to property store
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2767
2020-05-06 10:07:58 +02:00
Matej Ferencevic
4d2eda398f
Improve property store performance
...
Summary:
This diff improves the performance of `PropertyStore` with two main
techniques:
First:
`PropertyValue` has a very expensive constructor and destructor. The
`PropertyValue` was previously passed as a return value from many functions
wrapped in a `std::optional`. That caused the `PropertyValue`
constructor/destructor to be called for each intermediary value that was passed
between functions. This diff changes the functions to return a `bool` value
that imitates the `std::optional` "emptyness" flag and the `PropertyValue` is
modified using a pointer to it so that its constructor/destructor is called
only once.
Second:
The `PropertyStore` buffer was previously iterated through at least twice.
First to determine the exact position of the encoded property and then to
actually decode the property. This diff combines the two passes into a single
pass so that the property is immediately loaded if it is found.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2766
2020-05-05 10:55:00 +02:00
Lovro Lugovic
317f7f118c
Make Python modules reloadable
...
Reviewers: mferencevic, buda
Reviewed By: mferencevic, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2763
2020-04-27 17:29:58 +02:00
Marko Budiselic
f35225f26b
Optimize IN list execution
...
Summary:
Use Unwind + ScanAllByLabelPropertyValue logical operator to
accelerate the execution of queries like the following one:
`MATCH (n:Label) WHERE n.property IN [] ...`
Reviewers: llugovic, mferencevic
Reviewed By: llugovic, mferencevic
Subscribers: llugovic, pullbot
Differential Revision: https://phabricator.memgraph.io/D2758
2020-04-21 11:38:38 +02:00
Marko Budiselic
e04b96a0ac
Reduce the frame stack size
...
Reviewers: llugovic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2762
2020-04-19 20:27:20 +02:00
Matej Ferencevic
21be41995c
Fix CMake RPM typo and specify all package config files
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2757
2020-04-06 19:12:30 +02:00
Matej Ferencevic
6c69351ea1
Fix RPM packaging
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2756
2020-04-06 16:01:48 +02:00
Matej Ferencevic
e9ea8693fa
Fix CentOS compilation
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2755
2020-04-06 16:01:35 +02:00
Matej Ferencevic
9d3f75a34d
Don't link with libreadline in community release
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2754
2020-04-06 10:17:02 +02:00
Marko Budiselic
590fc5c9a8
Add NetworkX to Dockerfiles
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2753
2020-04-04 15:41:59 +02:00
Matej Ferencevic
1d5952bb9c
Fix RPM package installation
...
Summary: `chattr` must be after `chown`.
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2752
2020-04-03 18:50:52 +02:00
Matej Ferencevic
24eb021840
Fix wrong function invocation in get_version script
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2751
2020-04-03 17:38:12 +02:00
Matej Ferencevic
ac3560ec8c
Add changelog for version 1.0
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2750
2020-04-03 14:09:02 +02:00
Matej Ferencevic
974ce1e9e9
Fix Debian package installation
...
Summary: `chattr` must be after `chown`.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2748
2020-04-02 19:46:28 +02:00
Matej Ferencevic
66e644551f
Clean-up packaged examples
...
Summary:
The snapshot files now have identical names each time they are generated. Also,
all unnecessary directories (like `auth`) are removed from the examples
automatically.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2747
2020-04-02 19:45:32 +02:00
Matej Ferencevic
df72723664
Install Python query modules
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2749
2020-04-02 19:45:12 +02:00
Dino Santl
96bb7a87e3
Add graph analyzer python module.
...
Summary:
In new commit time limit is introduced.
Also, subgraph query is a little bit different because of memory leak. If we use subgraph in a same way as in wcc.py module then we cannot have Exceptions - reason is memory leak in parameters (node and edge list). Edge and node lists are now list of integers (database id).
P.S. if you know how avoid this please let me know.
Reviewers: mferencevic, llugovic, tsabolcec, tlastre, buda
Reviewed By: mferencevic, llugovic, tlastre, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2736
2020-04-02 15:26:20 +02:00
Matej Ferencevic
39deba3b9e
Fix wrong implicit cast in query dumper
...
Summary: All integers are signed in openCypher.
Reviewers: buda, llugovic
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2746
2020-04-01 18:35:23 +02:00
Matej Ferencevic
d04993df67
Improve storage unit test
...
Summary: The tests are extracted from D2570.
Reviewers: llugovic, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2745
2020-04-01 15:26:44 +02:00
Matej Ferencevic
7e35798401
Remove leftover raft unit test
...
Reviewers: llugovic, buda
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2744
2020-04-01 13:48:02 +02:00
Matej Ferencevic
1d2bb2cda6
Remove leftover traces of HA from query
...
Reviewers: llugovic
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2743
2020-04-01 13:47:47 +02:00
Lovro Lugovic
8fb3a53b78
Expose query timeout checking to modules
...
Summary:
- Add the `mgp_must_abort(const mgp_graph *graph)` C API.
- Add the `ProcCtx.must_abort()` Python API.
The usage is very simple -- the function returns a boolean indicating whether
the procedure should abort.
Reviewers: mferencevic, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2742
2020-04-01 13:30:03 +02:00
Matej Ferencevic
a1b5bdd88f
Implement concurrent tests for storage indices
...
Summary: The same test is written both for label indices and label+property indices.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2741
2020-04-01 10:43:05 +02:00
Matej Ferencevic
3cd89e1fe4
Remove internal mgp.py file from Python traceback
...
Reviewers: llugovic
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2740
2020-03-31 15:49:06 +02:00
Matej Ferencevic
90c83de7c2
Fix Python memory leaks when exceptions are thrown
...
Summary:
The Python `ExceptionInfo` data has the potential to extend lifetime of Python
objects that were on the Python frame while the execution was thrown. This
lifetime extension is very dangerous when executing Python procedures because
we use a custom internal memory allocator that is destroyed immediately when
the procedure is done with its execution.
This diff only keeps the formatted Python traceback (as a string) to avoid any
lifetime extension for the Python objects so that the memory allocator can
safely be destroyed after the procedure has finished its execution.
Reviewers: llugovic
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2739
2020-03-31 14:24:05 +02:00
Matej Ferencevic
7cd96dc2f5
Fix Python objects init
...
Summary:
`PyObject_Init` shouldn't be used in conjunction with `PyObject_New`.
The official Python documentation doesn't say this explicitly and many examples
on the web suggest that they must be used together. When they are used together
everything works when Memgraph is built against the release Python binary, but
doesn't work when built against the debug Python binary.
An implicit example that `PyObject_Init` shouldn't be used with `PyObject_New`
can be found in the Python source, in the file `Include/objimpl.h`:
```
This example code implements an object constructor with a custom
allocator, where PyObject_New is inlined, and shows the important
distinction between two steps (at least):
1) the actual allocation of the object storage;
2) the initialization of the Python specific fields
in this storage with PyObject_{Init, InitVar}.
PyObject *
YourObject_New(...)
{
PyObject *op;
op = (PyObject *) Your_Allocator(_PyObject_SIZE(YourTypeStruct));
if (op == NULL)
return PyErr_NoMemory();
PyObject_Init(op, &YourTypeStruct);
op->ob_field = value;
...
return op;
}
Note that in C++, the use of the new operator usually implies that
the 1st step is performed automatically for you, so in a C++ class
constructor you would start directly with PyObject_Init/InitVar
```
It explains that `PyObject_New` is actually equal to `malloc` +
`PyObject_Init`.
Reviewers: llugovic
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2737
2020-03-30 12:40:42 +02:00
Matej Ferencevic
41551bcd36
Fix Python struct formatting
...
Reviewers: llugovic
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2738
2020-03-28 20:13:02 +01:00
Lovro Lugovic
e5b3414335
Implement the PageRank module
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2730
2020-03-25 13:58:50 +01:00
Teon Banek
b7738c64b3
Make py::Object conversion to PyObject * explicit
...
Summary:
This fixes an issue in Py(Vertex|Edge)GetProperty and prevents any
further issues of that type at the cost of additional typing effort.
Reviewers: ipaljak, llugovic
Reviewed By: ipaljak, llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2735
2020-03-24 12:23:13 +01:00
Matej Ferencevic
a8b81fdcde
Unify C/Python query module logging
...
Summary:
Make logging for operations with C/Python query modules (loading, closing,
reloading) consistent.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2734
2020-03-20 16:02:29 +01:00
Matej Ferencevic
9f006c1b57
Fix storage GC indices/constraints subtle race condition
...
Summary:
In order for this race condition to cause damage, an index/constraint must be
created/dropped at the exact moment that the GC is cleaning
indices/constraints.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2733
2020-03-20 12:41:20 +01:00
Teon Banek
2b8f068ca9
Correctly delimit arguments when printing signature
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2732
2020-03-19 14:19:53 +01:00
Teon Banek
d4c2798551
Save and restore the exception in WithMgpModule
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2731
2020-03-19 14:19:50 +01:00
Marko Budiselic
4b5068e455
Update release docker
...
Summary:
* Update dockerfiles (add `libseccomp2` `python3`).
* Parse docker offering info from the package name.
Reviewers: teon.banek, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D1924
2020-03-18 17:50:20 +01:00
Ivan Paljak
44917fdfa6
Use storage::EdgeAccessor::Gid() as __hash__ for mgp.Edge
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2729
2020-03-18 15:13:13 +01:00
Teon Banek
ba55372610
Fix memory leak in GetVertexById
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: ipaljak, llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2727
2020-03-18 10:32:19 +01:00
Teon Banek
008efaf243
Implement pretty printing CallProcedure operator
...
Reviewers: mferencevic, llugovic, ipaljak
Reviewed By: mferencevic, llugovic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2726
2020-03-18 10:32:16 +01:00
Ivan Paljak
68a1a2da23
Implement wcc using networkx on a given subgraph
...
Reviewers: buda, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2723
2020-03-17 14:33:25 +01:00
Ivan Paljak
7b824ed622
Add __hash__ to mgp.Vertex and mgp.Edge
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2725
2020-03-17 13:46:09 +01:00
Matej Ferencevic
5632852890
Reduce number of errors in production log
...
Summary:
Currently, when starting Memgraph with the production package (DEB/RPM),
Memgraph always outputs an error for not being able to replace an existing
query module (`example.so` with `example.c`). This diff introduces a precheck
so that the error message is correct - so that Memgraph doesn't try to replace
an `.so` file with a `.c` file before verifying that the `.c` file is a valid
query module (which it obviously isn't). Also, I have moved the source of the
example into a subdirectory so that it isn't even considered while loading
modules.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2724
2020-03-17 13:34:11 +01:00
Teon Banek
d63eb191f9
Fix a planning issue when CALL preceded filtering
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2722
2020-03-16 15:06:39 +01:00
Matej Ferencevic
f1327c52ef
Fix ownership of examples in packages
...
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2721
2020-03-13 19:27:16 +01:00
Matej Ferencevic
f48ad62647
Implement storage lock
...
Summary:
The storage now uses a file in the data directory (`.lock`) to determine
whether there is another instance of the storage running with the same data
directory. That helps notify the user/administrator that the system is running
in an unsupported configuration.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2719
2020-03-13 19:27:01 +01:00
Teon Banek
eaabcd8d0d
Use fully_qualified_name for typing resolution
...
Reviewers: ipaljak, buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2720
2020-03-12 14:04:44 +01:00
Teon Banek
fb4ce6c5ed
Update the example.py to use more API
...
Reviewers: ipaljak, dsantl, buda, tlastre
Reviewed By: ipaljak, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2718
2020-03-12 14:04:40 +01:00
Lovro Lugovic
dd5d29fa1d
Implement conversion of mgp_vertex to/from mgp.Vertex
...
Summary:
- Fix AssertPickleAndCopyAreNotSupported
- Test Vertex and Edge conversions
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2717
2020-03-11 16:13:24 +01:00
Teon Banek
963d779d48
Install and setup loading Python Query Modules
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D2715
2020-03-11 10:24:53 +01:00
Matej Ferencevic
5695774251
Improve CSV importer
...
Summary:
The importer now supports all of the flags that the modern Neo4j CSV importer
supports.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2709
2020-03-10 15:51:29 +01:00
Ivan Paljak
181f937c15
Add Python class for mgp_properties_iterator
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2712
2020-03-10 14:34:32 +01:00
Tonko Sabolcec
7ea2d1b638
Add concurrent test for unique constraints
...
Summary:
This diff contains simple tests for unique constraints which tries to
change property values or labels in multiple threads at the same time.
During testing, a bug has been encountered in unique constraints, i.e.
one guard lock on vertices was missing.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: mferencevic, pullbot
Differential Revision: https://phabricator.memgraph.io/D2711
2020-03-10 12:52:58 +01:00
Teon Banek
c4a1a6c0b4
Extract py::AppendToSysPath function
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2714
2020-03-10 11:06:21 +01:00
Teon Banek
d0411510fa
Add GetExecutablePath to utils/file
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2713
2020-03-10 11:06:18 +01:00
Teon Banek
fbdcad1106
Implement calling Python procedures
...
Summary:
You should now be able to invoke query procedures written in Python. To
test the example you can run memgraph with PYTHONPATH set to `include`.
For example, assuming you are in the root of the repo, run this command.
PYTHONPATH=$PWD/include ./build/memgraph --query-modules-directory=./query_modules/
Alternatively, you can set a symlink inside the ./query_modules to point
to `include/mgp.py`, so there's no need to set PYTHONPATH. For example,
assuming you are in the root of the repo, run the following.
cd ./query_modules
ln -s ../include/mgp.py
cd ..
./build/memgraph --query-modules-directory=./query_modules/
Depends on D207
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: ipaljak
Subscribers: buda, tlastre, pullbot
Differential Revision: https://phabricator.memgraph.io/D2708
2020-03-06 16:25:51 +01:00
Tonko Sabolcec
6f83fff171
Implement durability functionality for unique constraints
...
Summary:
This diff contains a necessary functionality to save and restore unique
constraint operations. The previous snapshot/WAL version is backward
compatible. Integration tests for migration from older snapshot and WAL
versions are also included.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2680
2020-03-06 14:14:54 +01:00
Matej Ferencevic
8363991575
Implement new CSV parser
...
Summary:
The new CSV parser in `mg_import_csv` behaves the same when importing a CSV
file as the standard Python CSV importer. Tests are added for all CSV field
edge-cases.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2702
2020-03-06 11:32:54 +01:00
Teon Banek
1d30a2e5cb
Convert mgp_value to 'mgp' Python types, not '_mgp' ones
...
Summary:
When invoking a Python registered procedures we want to convert
`mgp_value` types to user facing 'mgp' types.
Depends on D2706
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2707
2020-03-06 11:23:08 +01:00
Teon Banek
31a4c55e76
Add HasAttr, GetAttr, and SetAttr to py::Object
...
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2706
2020-03-06 11:22:39 +01:00
Teon Banek
456267249e
Convert mgp_list to PyTuple instead of PyList
...
Summary: It's much safer to give users immutable types.
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2705
2020-03-06 11:22:18 +01:00
Marko Budiselic
32b35f6f88
Clean docs folder
...
Summary:
Removed folders:
* dev/diagram
* dev/distributed
* feature_ref
Reviewers: teon.banek, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2710
2020-03-05 18:32:14 +01:00
Matej Ferencevic
000d6dba55
Fix utils::SkipList const iterator bug
...
Summary:
This issue was already fixed in D2119 for the iterator, but I missed to fix the
const iterator in that diff...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2703
2020-03-05 11:17:26 +01:00
Teon Banek
6e9404c89a
Correctly implement mgp_value move constructor
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2704
2020-03-05 10:00:52 +01:00
Teon Banek
d531e44bef
Merge Invalid.*Error into InvalidContextError
...
Summary:
There's no need for so many Exception subclasses, because the root cause
is always the same.
Depends on D2700
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2701
2020-03-04 12:52:05 +01:00
Teon Banek
74d9dd0b0a
Implement mgp.Path
...
Reviewers: ipaljak, mferencevic
Reviewed By: ipaljak, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2700
2020-03-04 12:51:06 +01:00
Matej Ferencevic
a456d6cdc0
Implement mg_import_csv
...
Summary:
This diff restores (and fixes) the old mg_import_csv implementation. The
importer now supports the new storage engine.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek, ipaljak
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2690
2020-03-03 14:33:43 +01:00
Ivan Paljak
ec0caad44c
Fix memory leaks in Py*Iter* methods
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2699
2020-03-02 14:40:59 +01:00
Tonko Sabolcec
14c4c6d060
Update query dump with unique constraints
...
Summary:
Now that unique constraint feature is added to Memgraph database,
we should update `DUMP DATABASE` with list of existing unique constraints.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2698
2020-03-02 13:50:35 +01:00
Teon Banek
b922ca75d0
Add mgp_path_equal to C API
...
Reviewers: ipaljak, mferencevic
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2697
2020-03-02 13:19:22 +01:00
Teon Banek
f5a94d6e29
Make MakePy<name> less error prone
...
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2696
2020-03-02 13:19:19 +01:00
Tonko Sabolcec
eed83a210e
Implement unique constraint functionality in query module
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2681
2020-03-02 13:00:04 +01:00
Matej Ferencevic
0e95934719
Remove leftover implementation required by the old storage
...
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2687
2020-03-02 12:45:18 +01:00
Teon Banek
565927631f
Update docs/dev/query/planning.md
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2691
2020-03-02 09:07:25 +01:00
Teon Banek
64da28ca83
Fix some memory leaks in PyObjectToMgpValue
...
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2695
2020-02-28 10:57:39 +01:00
Teon Banek
4049b9d10a
Add mgp_path_copy to C API
...
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2694
2020-02-28 10:57:36 +01:00
Ivan Paljak
bb4e747fd3
Finalize PyEdgeFromVertex and PyEdgeToVertex implementations
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2693
2020-02-28 09:36:47 +01:00
Ivan Paljak
b6b6403b06
Implement PyEdgesIterator and integrate with PyVertex
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2692
2020-02-27 15:57:02 +01:00
Teon Banek
ad892f2db3
Support typing annotations in Python Query Modules
...
Reviewers: mferencevic, ipaljak, tlastre
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2689
2020-02-27 13:18:57 +01:00
Ivan Paljak
32e56684db
Add Python class for mgp_vertex
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2688
2020-02-26 14:01:43 +01:00
Matej Ferencevic
bfbace8168
Remove old HA implementation
...
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2686
2020-02-25 17:19:35 +01:00
Matej Ferencevic
4e5a91e7fb
Merge memgraph_init with main file
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2684
2020-02-25 12:25:25 +01:00
Matej Ferencevic
2562070b06
Use std::string_view in storage NameTo... functions
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2683
2020-02-25 12:15:31 +01:00
Teon Banek
e7f363ecbe
Add Python class for mgp_edge
...
Reviewers: teon.banek, ipaljak, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2679
2020-02-25 10:26:08 +01:00
Teon Banek
34db077cbd
Register Python procedures
...
Summary:
With this diff you should now be able to register `example.py` and read
procedures found there. The procedures will be listed through `CALL
mg.procedures() YIELD *` query, but invoking them will raise
`NotYetImplemented`.
If you wish to test this, you will need to run the Memgraph executable
with PYTHONPATH set to the `include` directory where `mgp.py` is found.
Additionally, you need to pass `--query-modules-directory` flag to
Memgraph, such that it points to where it will find the `example.py`.
For example, when running from the root directory of Memgraph repo, the
shell invocation below should do the trick (assuming `./build/memgraph`
is where is the executable). Make sure that `./query_modules/` does not
have `example.so` built, as that may interfere with loading
`example.py`.
PYTHONPATH=$PWD/include ./build/memgraph --query-modules-directory=./query_modules/
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic, ipaljak, llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2678
2020-02-19 14:35:22 +01:00
Matej Ferencevic
47ce444c02
Fix auth Cypher visitor
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2675
2020-02-17 17:41:08 +01:00
Matej Ferencevic
e8903ef477
Expose auth user/role name regex
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2673
2020-02-17 17:40:53 +01:00
Matej Ferencevic
d1be5ea136
Remove cppcheck from arc linters
...
Summary: Unfortunately, `cppcheck` fails to detect various macros as valid syntax.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2674
2020-02-17 17:40:39 +01:00
Matej Ferencevic
c50b518fad
Update community license to match the enterprise trial license
...
Summary:
This diff just changes minor style and removes the `early access` wording from
the license.
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2672
2020-02-17 14:57:14 +01:00
Matej Ferencevic
dfc546183d
Add community to Apollo build
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2671
2020-02-17 13:27:20 +01:00
Lovro Lugovic
5953f07be3
Add conversion of py::Object to mgp_value
...
Reviewers: teon.banek, ipaljak, mferencevic
Reviewed By: teon.banek, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2667
2020-02-14 16:08:20 +01:00
Teon Banek
ad740e4ae2
Add _mgp.Graph and _mgp.VerticesIterator to embedded Python
...
Reviewers: llugovic, ipaljak, mferencevic
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2669
2020-02-14 10:00:55 +01:00
Matej Ferencevic
bd0fd2619c
Add cppcheck and clang-format arc linters
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2670
2020-02-13 13:38:49 +01:00
Tonko Sabolcec
95c9755e13
Support property set for unique constraints
...
Summary:
Before this change, unique constraints supported only pairs of label
and a single property. With this change, unique constraints can be
created for label and set of properties.
Better tests for unique constraints in general are also included in
this diff.
Reviewers: mferencevic, teon.banek
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2653
2020-02-13 12:41:35 +01:00
Matej Ferencevic
4669e0ae7d
Enable code coverage
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2666
2020-02-13 11:15:45 +01:00
Teon Banek
6a7b983a58
Normalize the exception in py::FetchError
...
Reviewers: llugovic, ipaljak
Reviewed By: llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2668
2020-02-12 16:32:24 +01:00
Matej Ferencevic
beec3e3f5f
Set RPM package license type
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2663
2020-02-12 13:28:26 +01:00
Matej Ferencevic
ffbe5b449d
Implement version names for each Memgraph version
...
Summary:
With this diff, each build of Memgraph has a version that uniquely identifies
it. The given version uniquely identifies both official release builds and
development builds. Enterprise/community builds are also differentiated in the
version. Also, support for custom suffixes is added to support custom builds
for customers.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2662
2020-02-12 10:05:40 +01:00
Teon Banek
0a7de969f3
Add converting mgp_value to py::Object
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2665
2020-02-12 09:30:14 +01:00
Ivan Paljak
2aa960403a
Refactor query module to support differently loaded modules
...
Summary:
`query::procedure::Module` is now an interface class through which
users interact with loaded modules. At the moment, the interface is implemented
by three concrete classes: `query::procedure::BuiltinModule`,
`query::procedure::SharedLibraryModule` and `query::procedure::PythonModule`.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2664
2020-02-11 16:56:26 +01:00
Teon Banek
d17d1497d1
Add missing includes to py.hpp
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2661
2020-02-10 14:37:05 +01:00
Tonko Sabolcec
e2e7823ec4
Add basic support for unique constraints in storage
...
Summary:
This diff contains a basic implementation of unique constraints consistent with
the MVCC storage.
Stale records in the unique constraints are collected by the garbage collector.
Tests for checking correctness of unique constraints and violations are included.
Note: currently we only support a pair of label and a single property. Support for
multiple properties will be added later.
Reviewers: mferencevic, teon.banek
Reviewed By: mferencevic, teon.banek
Subscribers: buda, ipaljak, pullbot
Differential Revision: https://phabricator.memgraph.io/D2608
2020-02-10 12:45:28 +01:00
Teon Banek
ab53cbb0c3
Embed Python and import modules into global interpreter
...
Summary:
This only imports the `.py` files into the global interpreter. These
modules are not exposed to query execution. A later diff will add that
support.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2660
2020-02-10 11:06:08 +01:00
Matej Ferencevic
90286b8166
Install license, systemd and examples from release
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2659
2020-02-07 10:54:07 +01:00
Matej Ferencevic
7128320b36
Implement MG_ENTERPRISE CMake flag
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2658
2020-02-06 13:39:30 +01:00
Matej Ferencevic
87511460f1
Remove unused CMake options
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2656
2020-02-05 14:52:22 +01:00
Matej Ferencevic
3e20afde6e
Increase stress test query timeout
...
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2657
2020-02-05 14:52:13 +01:00
Matej Ferencevic
29aa9b9e92
Move CPack setup to release
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2655
2020-02-05 10:26:41 +01:00
Teon Banek
4281a57923
Stub out full Python API for Query Modules
...
Summary:
This is the Python 3.5+ version of our C API found in
include/mg_procedure.h. It should strive to be simple to use, but very
hard to misuse. The Python API avoids almost all memory management
issues found in the C API, so it is automatically less error prone.
Unfortunately, we cannot avoid the issue of having some objects being
alive only during the execution of a custom procedure. For such objects
we have a `Invalid<Object>Error` exception types. The Python API should
fairly easily check the validity because all such objects are related to
ProcCtx in some way. Our C/C++ part will push 1 instance of ProcCtx each
time a Python procedure is invoked and can therefore easily change
ProcCtx to be invalid. This can be as simple as changing the
implementation pointer of ProcCtx to NULL.
Reviewers: mferencevic, ipaljak, tlastre, dsantl, buda
Reviewed By: mferencevic, tlastre
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2650
2020-02-04 13:10:10 +01:00
Matej Ferencevic
6c422f3208
Remove global include directories in CMake
...
Summary:
All external libraries now automatically include their include directories. It
is necessary only to link to the external library using
`target_link_libraries(target library)` and the include directory of the
library will be automatically available for the binary.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2654
2020-02-03 13:18:30 +01:00
Matej Ferencevic
a3229881bf
Move Antlr generation to query
...
Summary:
The antlr openCypher parser generation is moved to query. Also, header files
have been added to the list of generated files so that if any header file is
deleted CMake will know that it has to regenerate it.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2652
2020-01-31 16:14:05 +01:00
Matej Ferencevic
c96421424f
Reorganize unit CMakeLists
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2651
2020-01-31 11:18:36 +01:00
Matej Ferencevic
d156d5b41c
Remove customers/experimental/poc
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2648
2020-01-29 16:59:45 +01:00
Matej Ferencevic
84a6ab75cb
Fix race condition in long running stress test
...
Summary:
The long running stress test had a subtle race condition which caused the test
to fail with an error message like "Runner X edges creation failed because of:
Can't serialize due to concurrent operations.". This situation was caused
because some workers could complete their initialization (initial vertex and
edge creation) before other workers. The workers that completed their
initialization would then proceed to execute the test. In the test they could
execute queries that make global updates on the graph that could interfere with
the concurrently running initialization queries of other workers.
This diff makes the runners wait until all initialization queries are fully
executed before they execute global operations on the graph.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2647
2020-01-29 10:19:53 +01:00
Matej Ferencevic
fd87facf65
Make audit a standalone library
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2649
2020-01-28 16:37:07 +01:00
Teon Banek
ec4d8c7bb1
Write query_modules/example.c as example.py
...
Summary:
This is an overview on how the example Query Module will look in
Python.
Reviewers: mferencevic, ipaljak, buda, tlastre, dsantl
Reviewed By: ipaljak, tlastre, dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2642
2020-01-28 14:29:50 +01:00
Matej Ferencevic
cfbfeb1dfc
Remove TotalOrdering from utils::Timestamp
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2646
2020-01-28 10:40:55 +01:00
Matej Ferencevic
015573b5af
Clean-up utils/hashing
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2645
2020-01-28 10:40:43 +01:00
Matej Ferencevic
de48548164
Move RPC to root source directory
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2641
2020-01-27 11:50:24 +01:00
Matej Ferencevic
7d0590a753
Remove wrongly committed TODO
...
Summary: Sorry, won't happen again...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2643
2020-01-27 11:49:59 +01:00
Matej Ferencevic
fd81ebdfe3
Move KVStore to root source directory
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2640
2020-01-24 16:01:51 +01:00
Matej Ferencevic
0c7313bb5f
Remove unused datastructures
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2639
2020-01-24 15:11:02 +01:00
Matej Ferencevic
c425624ba6
Remove old single node storage implementation
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2638
2020-01-24 15:10:41 +01:00
Matej Ferencevic
0683ed4134
Remove MG_SINGLE_NODE_V2 define
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2637
2020-01-23 17:24:33 +01:00
Matej Ferencevic
6d10d90d98
Remove unused utils
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2636
2020-01-23 17:22:51 +01:00
Teon Banek
4f16b814c7
Use ExpandVariable to existing when possible
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2634
2020-01-23 17:12:24 +01:00
Teon Banek
029a36eab1
Add a feature spec for Python Query Modules
...
Reviewers: mferencevic, buda, ipaljak, dsantl, tlastre
Reviewed By: mferencevic, buda, ipaljak, dsantl
Differential Revision: https://phabricator.memgraph.io/D2629
2020-01-23 17:10:23 +01:00
Matej Ferencevic
a1fa7de115
Remove leftover old storage types
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2635
2020-01-23 16:24:56 +01:00
Matej Ferencevic
98dc7e2849
Remove old storage types
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2633
2020-01-23 14:32:33 +01:00
Ivan Paljak
1a50165c22
Remove log compaction from current HA implementation
...
Reviewers: mferencevic, buda
Reviewed By: mferencevic, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2632
2020-01-23 10:38:37 +01:00
Teon Banek
c11d391e62
Print the type of ExpandVariable in EXPLAIN
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2631
2020-01-22 16:28:18 +01:00
Matej Ferencevic
b7a5532cc2
Add server name to Bolt
...
Reviewers: buda, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2021
2020-01-21 12:03:16 +01:00
Matej Ferencevic
1fb5d14751
Improve auth module error handling and support relative paths
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2628
2020-01-21 11:02:14 +01:00
Ivan Paljak
3121f7d89d
Update HA feature spec
...
Reviewers: buda, teon.banek, mferencevic
Reviewed By: buda
Subscribers: dsantl, dlozic, tlastre
Differential Revision: https://phabricator.memgraph.io/D2626
2020-01-20 17:55:25 +01:00
Ivan Paljak
3a88668ace
Output Memgraph version to stdout on startup
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D2627
2020-01-17 13:04:05 +01:00
Teon Banek
cc2160d397
Remove linking mg-query with mg-auth
...
Summary: Depends on D2623
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2624
2020-01-16 17:02:37 +01:00
Teon Banek
c7f69fd861
Extract AuthQuery handling to an interface class
...
Reviewers: mferencevic, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2623
2020-01-16 17:02:35 +01:00
Teon Banek
5fefd9d82f
Document throwing methods in Auth, User and Role classes
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2622
2020-01-16 16:08:59 +01:00
Matej Ferencevic
c3bfd3004b
Reduce memory allocations in indices
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2621
2020-01-15 14:52:26 +01:00
Teon Banek
9889b9421d
tests/unit: Don't ignore result of DetachRemoveVertex
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2620
2020-01-14 13:00:08 +01:00
Matej Ferencevic
4776bea221
Temporarily disable HA build and tests
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2619
2020-01-13 17:04:27 +01:00
Matej Ferencevic
5906258de0
Stop building storage v1
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2618
2020-01-13 14:18:12 +01:00
Matej Ferencevic
79947c376b
Migrate property_based tests to storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2617
2020-01-13 13:09:57 +01:00
Teon Banek
0c7f384fd2
Make Vertex|Edge lock member mutable
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2614
2020-01-13 10:10:02 +01:00
Teon Banek
2011aea165
Remove mg-single-node-v2 library
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2613
2020-01-10 09:58:33 +01:00
Teon Banek
ba6632a00d
Link benchmarks and manual tests with mg-query
...
Summary: Depends on D2611
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2612
2020-01-08 14:33:39 +01:00
Teon Banek
551c6c5ad6
Add mg-query library and use it in unit tests
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2611
2020-01-08 14:33:35 +01:00
Ivan Paljak
3a0dda976a
Fix spelling mistakes in v2/durability
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D2610
2019-12-31 15:05:14 +01:00
Matej Ferencevic
b5e255b896
Implement local buffer for PropertyStore
...
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2605
2019-12-23 15:34:51 +01:00
Matej Ferencevic
b3d1cd8257
Improve long running stress test
...
Summary:
The test is now more strict than before. Each verification step doesn't just
verify that object counts are correct, it now also verifies that all object IDs
are correct. The continuous integration script is improved to have a more
deterministic startup.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2606
2019-12-23 14:18:52 +01:00
Matej Ferencevic
d968370c3e
Implement property store
...
Summary:
The property store stores a map of `PropertyId` to `PropertyValue` mappings. It
compresses all of the values in order to use as little memory as possible.
Reviewers: teon.banek, ipaljak
Reviewed By: teon.banek
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2604
2019-12-23 13:28:46 +01:00
Teon Banek
d910813955
Optimize vertex lookup by ID
...
Reviewers: mferencevic, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2609
2019-12-23 13:27:40 +01:00
Ivan Paljak
591eadad20
Fix modularity calculation bug in Louvain query module
...
Reviewers: dsantl
Reviewed By: dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2607
2019-12-18 15:36:43 +01:00
Ivan Paljak
ec67e71d39
Fix bug in modularity calculation
...
Summary:
This diff does not fix our Louvain implementation completely. The algorithm
internally still optimzies the wrong function, but this will at least correctly
calculate the modularity value at the end.
Fix of the algorithm will come in a separate diff
Reviewers: dsantl
Reviewed By: dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2603
2019-12-16 16:34:40 +01:00
Teon Banek
0c111d52dc
Add syntax for limiting memory of CALL
...
Reviewers: mferencevic, ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2602
2019-12-16 10:58:28 +01:00
Matej Ferencevic
f27682dc26
Make telemetry work with v2 and increase timeout
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2601
2019-12-11 16:27:18 +01:00
Matej Ferencevic
e9f55e2f31
Strip query modules in release build
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2599
2019-12-11 13:52:48 +01:00
Ivan Paljak
dda74e0554
Expose modularity value in louvain query module
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: mferencevic, pullbot
Differential Revision: https://phabricator.memgraph.io/D2591
2019-12-11 13:36:50 +01:00
Matej Ferencevic
4c8d8ad63f
Add changelog for version 0.50
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2597
2019-12-10 16:47:11 +01:00
Matej Ferencevic
b894f80de4
Improve disabled properties on edges error message
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2596
2019-12-10 13:56:59 +01:00
Matej Ferencevic
5fa6974919
Implement storage info
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2593
2019-12-10 13:06:31 +01:00
Matej Ferencevic
12e4fff86b
Enable properties on edges by default in package
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2595
2019-12-09 16:38:36 +01:00
Matej Ferencevic
8b732002a7
Fix examples build
...
Summary:
Most of the examples require properties to be enabled on edges so this change
specifies that flag explicitly. Also, errors are handled better by replacing
`bolt_client` with `mg_client`. Missing indices are created to improve import
speed.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2594
2019-12-09 16:01:28 +01:00
Teon Banek
5067cf1e23
Support CALL ... YIELD * syntax
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2592
2019-12-09 14:37:20 +01:00
Matej Ferencevic
d68106051c
Replace hardcoded configuration with generator
...
Summary:
The configuration file that was used for the Debian/CentOS package was manually
written. This diff adds a configuration file generator that extracts all of the
necessary information about the flags directly from the built binary and uses
that information to generate the configuration file for the packages.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2589
2019-12-09 13:51:10 +01:00
Matej Ferencevic
eb38b4f373
Rename Bolt flags
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2587
2019-12-09 11:24:09 +01:00
Matej Ferencevic
1aadebbb70
Migrate leftover tests away from old storage
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2590
2019-12-09 10:27:35 +01:00
Matej Ferencevic
dd68065d34
Remove leftover config files
...
Summary:
Don't use flag files for specifying flag values in tests. Instead, all
necessary flags are explicitly defined in each of the tests.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2588
2019-12-09 10:25:43 +01:00
Teon Banek
d9abb7ccf1
Move FindProcedure to module.hpp
...
Summary:
The function will also be used during AST construction in order to
support `CALL ... YIELD *` syntax.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2586
2019-12-09 10:03:23 +01:00
Matej Ferencevic
8da71873a7
Remove statsd
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2585
2019-12-06 16:44:30 +01:00
Matej Ferencevic
8a0abd6dbd
Make memgraph with storage v2 the main binary
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2567
2019-12-06 10:51:16 +01:00
Teon Banek
c8db7f88dc
Move mg.reload procedures to the builtin module
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2584
2019-12-05 13:54:22 +01:00
Matej Ferencevic
f786daf769
Install auth modules and their configuration files
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2536
2019-12-05 10:29:10 +01:00
Matej Ferencevic
db531611a9
Fix garbage collector race condition in storage v2
...
Summary:
The garbage collector had a race condition when it would delete deltas that
were in the middle of an object's delta chain. In the process of deleting
(unlinking) the delta, the garbage collector previously wouldn't acquire any
locks. That operation was then racing with the standard MVCC
`CreateAndLinkDelta` function that adds a new delta into the chain.
Fortunately, `CreateAndLinkDelta` always does its modifications while holding a
lock to the owner of the chain (either a vertex or an edge) so this change just
adds the lock acquiring to the garbage collector.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2582
2019-12-05 10:22:21 +01:00
Ivan Paljak
4b5d30cfb5
Incorporate edge weights into louvain query module
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: mferencevic, pullbot
Differential Revision: https://phabricator.memgraph.io/D2583
2019-12-04 16:22:14 +01:00
Matej Ferencevic
9cc204793d
Remove copy constructor/assignment from utils::SpinLock
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2581
2019-12-04 14:08:58 +01:00
Teon Banek
0d979dd7b3
query/procedure: Add builtin mg.procedures
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2579
2019-12-04 13:03:25 +01:00
Matej Ferencevic
83c368c82b
Fix indices locking in storage v2
...
Summary:
The functions that previously had locks in them are always called while the
vertex lock is already being held. Also, the lock guards were implemented
incorrectly.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2580
2019-12-04 10:27:55 +01:00
Matej Ferencevic
10cc831ed2
Implement all edge filters for storage v2
...
Summary:
Edge filters (edge type and destination vertex) are now handled natively in the
storage API. The API is implemented to be the fastest possible when using the
filters with the assumption that the number of edge types will be small.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2576
2019-12-04 10:13:28 +01:00
Ivan Paljak
f6b6ea254d
Implement Louvain as a query module
...
Reviewers: teon.banek, dsantl
Reviewed By: teon.banek, dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2574
2019-12-03 16:18:24 +01:00
Ivan Paljak
e605aed497
Implement weakly connected components as a query module
...
Reviewers: teon.banek, dsantl
Reviewed By: teon.banek, dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2577
2019-12-03 13:11:40 +01:00
Ivan Paljak
7cb4c64a48
Fix bug in query module result validation
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2578
2019-11-28 16:38:12 +01:00
Teon Banek
dd30522b2a
Update mgp_result_new_record documentation
...
Reviewers: mferencevic, ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2575
2019-11-28 14:58:46 +01:00
Teon Banek
e31331aae4
Rework CallProcedure to validate result sets
...
Summary:
This diff renames `__reload__` procedure to be `mg.reload` accepting a
module name. The main CallCustomProcedure function is now split into
multiple parts, so that there's more control over finding a procedure,
type checking its arguments and finally checking the returned result
set.
Depends on D2572
Reviewers: mferencevic, ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2573
2019-11-28 14:58:43 +01:00
Teon Banek
d71f1bfa35
Type check procedure arguments in CALL clause
...
Summary: Depends on D2571
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2572
2019-11-28 14:58:36 +01:00
Teon Banek
e1399582b8
Implement SatisfiesType on CypherType classes
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2571
2019-11-28 14:58:34 +01:00
Matej Ferencevic
c5def558e8
Cache vertex accessor for all vertices iterable
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2569
2019-11-27 10:55:12 +01:00
Teon Banek
df6ce53c67
query/procedure: Expose vertex ID through C API
...
Reviewers: mferencevic, ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2568
2019-11-26 17:06:31 +01:00
Ivan Paljak
03ecc58715
Make the Louvain code comply with our conventions
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2566
2019-11-26 10:06:19 +01:00
Matej Ferencevic
9e04183be7
Implement query execution timeout
...
Summary:
The query execution now has a timeout for each Cypher query it executes. The
timeout is implemented using TSC and will work only when TSC is available (same
as PROFILE). TSC is used to mitigate the performance impact of reading the
current time constantly.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2562
2019-11-25 17:45:40 +01:00
Teon Banek
673ebf428c
Add functions for treating character strings as byte strings
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2565
2019-11-25 17:03:12 +01:00
Ivan Paljak
7467d52d5b
Add cmake files and a dummy louvain query module
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2561
2019-11-25 16:38:56 +01:00
Matej Ferencevic
fc146a71e0
Migrate tests to storage v2 part 3
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2560
2019-11-25 16:21:04 +01:00
Matej Ferencevic
8a94b16e79
Fix parameters for PROFILE queries
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2563
2019-11-25 11:05:47 +01:00
Matej Ferencevic
42a4f310ff
Reduce number of copies in query::Parameters
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2564
2019-11-25 11:00:55 +01:00
Teon Banek
3c615759b6
Type check values used for indexed lookup in range
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2558
2019-11-22 10:28:01 +01:00
Matej Ferencevic
f61a8c3358
Migrate tests to storage v2 part 2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2559
2019-11-22 10:21:30 +01:00
Matej Ferencevic
9cc10e131d
Migrate tests to storage v2 part 1
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2554
2019-11-21 19:00:32 +01:00
Ivan Paljak
ae0be9032e
Implement Louvain community detection algorithm
...
Summary: Louvain implementation according to original paper.
Reviewers: dsantl
Reviewed By: dsantl
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2556
2019-11-21 15:06:30 +01:00
Matej Ferencevic
29590f1112
Implement edge iteration with known destination
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2553
2019-11-21 11:58:12 +01:00
Teon Banek
019b6cddaa
Use a custom value printer for procedure signature
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2557
2019-11-21 11:17:00 +01:00
Teon Banek
5354a11a00
Add registering multiple procedures in query modules
...
Reviewers: mferencevic, dsantl, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2551
2019-11-21 10:13:09 +01:00
Matej Ferencevic
8be2b4af63
Remove output formatters from vertex/edge accessors
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2555
2019-11-20 20:12:19 +01:00
Matej Ferencevic
d5f02c5ef8
Fix label+property index iteration in v2
...
Summary:
Now when iterating over a label+property index the index verifies that the
bounds meet the criteria imposed by openCypher.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2552
2019-11-18 14:54:45 +01:00
Teon Banek
1dc97a37f8
Cache globally allocated mgp_type instances
...
Summary:
This simplifies the C API and reduces total allocations done when
constructing a type.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2550
2019-11-15 10:44:55 +01:00
Matej Ferencevic
d17d463884
Add NONEXISTENT_OBJECT error to storage v2
...
Summary:
Previously, when accessing the labels/properties/edges of a vertex/edge that
was just created the NEW view would correctly display the change, but the OLD
view would be invalid and would crash the database. With this change the OLD
view of a freshly created vertex/edge won't cause a crash, but will instead
report an error.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2549
2019-11-15 10:01:22 +01:00
Matej Ferencevic
40ae31e9a0
Remove manual/repl test
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2548
2019-11-13 16:32:45 +01:00
Teon Banek
edaa03a960
Expose explicit Label index creation through Cypher
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2547
2019-11-13 16:28:14 +01:00
Teon Banek
9c095501d8
query/procedure: Add type system for Cypher
...
Summary:
The type system is modelled after "CIP2015-09-16"
https://github.com/opencypher/openCypher/blob/master/cip/1.accepted/CIP2015-09-16-public-type-system-type-annotation.adoc
This is needed for registering procedures and their signatures. The
users will be able to specify what a custom procedure accepts and
returns. All of this needs to be available for inspection during
runtime. Therefore, this diff implements printing types as a user
presentable string. In the future, we will probably want to add type
checking through these types, because openCypher requires type checking
on values passed in and returned from custom procedures.
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2544
2019-11-13 14:24:21 +01:00
Teon Banek
b4df6ba0a9
Correctly prepare Explain and Profile
...
Summary: Also test Explain and Profile through Intepreter.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2546
2019-11-13 12:03:11 +01:00
Matej Ferencevic
329818b1b0
Make the Cypher dumper a function
...
Summary:
The dumper is now a function and doesn't have to worry about any state. The
function streams the Cypher queries directly to the client. This diff also
makes the dumper work with storage v2.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2545
2019-11-12 16:01:29 +01:00
Matej Ferencevic
e4edb2be99
Finalize storage v2 index API
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2543
2019-11-12 12:11:38 +01:00
Matej Ferencevic
205477b28a
Implement indices and constraints info for v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2542
2019-11-12 11:06:53 +01:00
Lovro Lugovic
8735082bbd
Don't use OutputTable within query handlers
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2541
2019-11-11 14:12:38 +01:00
Lovro Lugovic
905b3ee2df
Don't unconditionally start a transaction on Prepare
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2532
2019-11-11 13:40:06 +01:00
Matej Ferencevic
a850644f5d
Fix atomic memory ordering in durability
...
Summary:
The atomic memory order should be `acquire` for `load` operations, `release`
for `store` operations and `acq_rel` for any RMW (read-modify-write) operations
(like `fetch_add`).
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2540
2019-11-11 12:57:04 +01:00
Matej Ferencevic
e350e2b7a4
Make the database dumper use only Vertices
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2539
2019-11-08 14:36:12 +01:00
Lovro Lugovic
cdb9c08047
Merge Interpret and Prepare
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2502
2019-11-08 10:25:51 +01:00
Lovro Lugovic
bf03c57181
Remove Results from the Interpreter
...
Summary:
- Add the `AnyStream` wrapper
- Remove the `Results` struct and store a function (handler) instead
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2497
2019-11-08 09:22:30 +01:00
Teon Banek
283a91cc60
Integrate loading openCypher module procedures
...
Summary:
All mgp_* symbols are exported from Memgraph executable, no other
symbols should be visible.
The primary C API header, mg_procedure.h, is now part of the
installation. Also, added a shippable query module example.
Directory `query_modules` is meant to contain sources of modules we
write and ship as part of the installation. Currently, there's only an
example module, but there may be potentially more. Some modules could
only be installed as part of the enterprise release.
For Memgraph to load custom procedures, it needs to be started with a
flag pointing to a directory with compiled shared libraries implementing
those procedures.
Reviewers: mferencevic, ipaljak, llugovic, dsantl, buda
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2538
2019-11-07 15:23:02 +01:00
Matej Ferencevic
9eb1f1d5cd
Implement ClearProperties for storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2537
2019-11-07 13:07:26 +01:00
Teon Banek
df43ccea95
Add CallProcedure LogicalOperator
...
Summary: Depends on D2534
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2535
2019-11-06 15:46:00 +01:00
Teon Banek
5567e6ec96
Add utils::LimitedMemoryResource
...
Reviewers: llugovic, mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2534
2019-11-06 15:45:56 +01:00
Matej Ferencevic
a835939a6e
Implement buffering for utils file wrappers
...
Summary:
This change increases the throughput of the storage v2 durability 20x. With
this change, the storage v2 durability is 3x faster than the storage v1
durability in both recovery and snapshotting (before the change v2 durability
is slower than v1 durability).
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2529
2019-11-05 12:30:09 +01:00
Matej Ferencevic
47d6196b32
Improve binary coverage script
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2530
2019-11-04 17:02:03 +01:00
Matej Ferencevic
73134ab6b7
Integrate all storage v2 flags into main binary
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2528
2019-11-04 17:01:56 +01:00
Teon Banek
32069c77a0
Add CallProcedure clause to Cypher
...
Summary:
This adds support for basic invocation to CALL clause of openCypher. The
accepted CIP has a lot more features that are avaiable with CALL clause.
https://github.com/opencypher/openCypher/blob/master/cip/1.accepted/CIP2015-06-24-call-procedures.adoc#appendix-procedure-naming-conventions
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic, llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2523
2019-11-04 16:21:29 +01:00
Matej Ferencevic
4248b140d4
Backup existing durability files
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2526
2019-11-04 10:38:13 +01:00
Matej Ferencevic
42516afce8
Remove Kafka integration implementation and tests
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2525
2019-11-04 09:56:07 +01:00
Matej Ferencevic
875a4a8629
Implement WAL loading for storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2521
2019-10-31 17:12:37 +01:00
Teon Banek
b5482a8169
Add .clang-tidy for tests and update the config
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2524
2019-10-31 16:07:09 +01:00
Teon Banek
043ae87a83
query/procedure: Implement graph related API
...
Reviewers: mferencevic, llugovic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2522
2019-10-30 15:11:53 +01:00
Lovro Lugovic
bd998dc618
Refactor query parsing in the Interpreter
...
Summary: Depends on D2482
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2499
2019-10-30 10:32:22 +01:00
Lovro Lugovic
b0cc564f8d
Make ResultStreamFaker a normal class
...
Summary:
Store accumulated results as `communication::bolt::Value`s instead of
`TypedValue`s.
Add additional overloads for `Result` and `Summary` which accept `TypedValue`s
but internally perform conversions.
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2514
2019-10-30 10:22:21 +01:00
Matej Ferencevic
13ba9cc23e
Implement WAL writing for storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2515
2019-10-29 16:18:12 +01:00
Teon Banek
4879686ef4
query/procedure: Implement mgp_list & mgp_map API
...
Reviewers: mferencevic, llugovic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2518
2019-10-29 15:52:05 +01:00
Teon Banek
a72743757c
query/procedure: Implement mgp_result API
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2516
2019-10-29 11:02:30 +01:00
Matej Ferencevic
2e0586e182
Implement single function for WAL loading
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2513
2019-10-28 15:42:49 +01:00
Teon Banek
4c6eb0746e
query/procedure: Implement mgp_value C API
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2498
2019-10-28 15:24:14 +01:00
Lovro Lugovic
3750fbc093
Merge Interpreter and TransactionEngine
...
Summary:
Depends on D2471
- Add pointer to storage to `InterpreterContext`
- Rename `operator()` to `Prepare`
- Use `Interpret` instead of `operator()` (`Interpret` will be removed soon)
- Remove the `in_explicit_transaction` parameter
- Remove the memory resource parameter from `Interpret`
- Remove the storage accessor parameter from `Interpret`
- Fix up tests (remove the `Interpreter` from `database_transaction_timeout`)
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2482
2019-10-25 16:11:10 +02:00
Matej Ferencevic
98855889d5
Implement WalFile for storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2510
2019-10-25 16:08:17 +02:00
Lovro Lugovic
d2fac02b74
Pull out InterpreterContext
...
Summary: Make `InterpreterContext` a top level instead of a nested struct
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2512
2019-10-25 15:58:47 +02:00
Lovro Lugovic
4c25719c45
Extract state shared between interpreters into InterpreterContext
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: mferencevic, pullbot
Differential Revision: https://phabricator.memgraph.io/D2471
2019-10-25 14:12:14 +02:00
Teon Banek
35180f11d3
Update .clang-tidy to not warn trailing return type
...
Summary:
This is primarily an update which disables the
`modernize-use-trailing-return-type` suggestion introduced in
clang-tidy-9. Old clang-tidy versions should ignore removed checks which
don't exist in the first place, so this should change should be
compatible with any version.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2511
2019-10-25 11:16:50 +02:00
Matej Ferencevic
bafc0a9d16
Reduce memory blowup on each Pull
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2509
2019-10-23 10:01:17 +02:00
Matej Ferencevic
3bed1cc3ea
Correctly pass config into AllVerticesIterable
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2500
2019-10-21 14:15:32 +02:00
Teon Banek
e566126832
query/procedure: Implement memory management C API
...
Reviewers: mferencevic, ipaljak, llugovic
Reviewed By: mferencevic, llugovic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2489
2019-10-18 14:35:04 +02:00
Teon Banek
469102aa5e
Pass mgp_memory to custom Module.main_fn
...
Summary: Depends on D2495
Reviewers: mferencevic, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2496
2019-10-18 13:38:01 +02:00
Teon Banek
2e1063bbdb
Introduce mgp_memory to mg_procedure API
...
Summary:
This makes the concrete memory resource an explicit argument in custom
procedures. Unfortunately, the API is a bit uglier but at least we don't
have to worry about threading, global state or similar. This is the
primary reason for this change as we would probably like to allow
procedures to spawn threads to compute stuff in a parallel fashion.
Reviewers: mferencevic, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2495
2019-10-18 13:37:54 +02:00
Matej Ferencevic
842f0f3bf6
Add missing check to snapshot recovery
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2490
2019-10-16 13:18:52 +02:00
Matej Ferencevic
e5a4a84de2
Fix MonotonicBufferResource buffer growth
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2483
2019-10-15 15:04:35 +02:00
Teon Banek
7afa4fd7b3
Add C API for working with graph constructs in procedures
...
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2469
2019-10-15 15:06:35 +02:00
Teon Banek
103f51d3ec
Add C API for creating a procedure result
...
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2464
2019-10-04 10:27:39 +02:00
Lovro Lugovic
5c5c926515
An aggregate element's input expression can be NULL
...
Summary: For example, the aggregate element produced for `COUNT(*)` has its `value` set to `NULL`.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2463
2019-10-03 10:07:24 +02:00
Teon Banek
d385ebfa15
Add C API for raw memory allocations in procedures
...
Reviewers: ipaljak, dsantl, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2461
2019-10-02 10:28:49 +02:00
Matej Ferencevic
3adedc0679
Implement snapshots for storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2400
2019-10-01 13:42:37 +02:00
Matej Ferencevic
3756534490
Don't crash the database when using utils::InputFile
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2460
2019-10-01 10:15:42 +02:00
Matej Ferencevic
8c7c593680
Clean-up of storage v2 delta
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2451
2019-09-27 10:47:28 +02:00
Teon Banek
f63a5e9de5
Rename PluginRegistry to ModuleRegistry
...
Summary:
The registry is now in the `query::procedure` namespace, this makes the
naming more consistent. I.e. we are dealing with custom procedure which
are contained in modules. This naming convention is similar to Python
source code where each file represents a module and each module provides
multiple functions (or procedures in our case). At the moment we only
support exactly 1 procedure per module, but the openCypher syntax allows
for more.
Reviewers: mferencevic, ipaljak, dsantl
Differential Revision: https://phabricator.memgraph.io/D2454
2019-09-26 13:29:13 +02:00
Teon Banek
6f25e43b52
Stub out C API for working with mg_value in custom procedures
...
Summary:
The `mg_value` is the main data type used in upcoming custom procedures. Each
custom procedure will receive arguments as an array of `mg_value` instances.
The results of custom procedures will also be built as `mg_value` instances.
We should strive to have as simple and straightforward C API for custom
procedures, because we want to limit the possibility of errors and bugs on the
user facing side. Custom procedures will run in Memgraph and as such can cause
crashes and potentially a lot of nasty stuff. The burden is on the writer of
custom procedures not to mess things up, so we should make messing things up
from the C API hard if not impossible to do.
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2443
2019-09-25 15:46:25 +02:00
Matej Ferencevic
9ad49698e9
Add support for disabling properties on edges
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2447
2019-09-25 10:17:19 +02:00
Matej Ferencevic
8b6ae08682
Create/drop label indices explicitly in storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2432
2019-09-24 13:12:50 +02:00
Matej Ferencevic
3079522f47
Make storage v2 config hierarchical
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2434
2019-09-23 16:03:53 +02:00
Matej Ferencevic
9d39ecab7b
Implement encoder/decoder for durability v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2393
2019-09-18 16:32:32 +02:00
Teon Banek
3a7bd6236e
Set -Werror=return-stack-address in CMakeLists
...
Summary:
This is a clang only flag, it promotes warnings to errors when returning
an address to something on the stack
Reviewers: mferencevic, ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2394
2019-09-18 10:04:34 +02:00
Teon Banek
04c037e0fd
Add PluginRegistry for openCypher custom procedures
...
Summary:
This diff implements a mechanism for registering plugins which provide
custom procedures for openCypher. Although the `Plugin` struct already
stores some function pointers, these are not set in stone w.r.t. to
requirements and signatures.
For example, in the future, we may want to allow a single plugin to
register multiple custom procedures instead of just one.
Reviewers: ipaljak, dsantl, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2386
2019-09-17 12:46:45 +02:00
Matej Ferencevic
fe2196b403
Add more file utils
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2384
2019-09-13 15:24:52 +02:00
Matej Ferencevic
9652f8e265
Add clear method to SkipList
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2385
2019-09-13 15:24:14 +02:00
Matej Ferencevic
55d8b98aeb
Prepare storage v2 config for more options
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2382
2019-09-13 12:42:23 +02:00
Matej Ferencevic
51fc4df87a
Add utils::InputFile wrapper
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2377
2019-09-12 16:30:11 +02:00
Matej Ferencevic
b74141aafe
Fix accessor locking in storage v2
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2376
2019-09-12 13:11:12 +02:00
Teon Banek
7bd45f8714
Make query execution work with storage_v2
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2203
2019-09-12 10:22:00 +02:00
Matej Ferencevic
68f19df305
Migrate LDAP integration to auth module
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2368
2019-09-11 17:15:08 +02:00
Matej Ferencevic
73379bc57e
Add functions for listing indices and constraints
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2371
2019-09-11 15:45:14 +02:00
Teon Banek
6d9933373e
Add missing include to scoped_profile.hpp
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic, ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2370
2019-09-11 12:46:37 +02:00
Ivan Paljak
deee3b8ab7
Remove Raft's dependency on transaction id
...
Reviewers: buda, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2338
2019-09-10 18:02:05 +02:00
Teon Banek
85b01f8497
Add query/db_accessor.hpp which wraps storage implementation
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2361
2019-09-10 15:43:07 +02:00
Matej Ferencevic
13daf1efd6
Implement auth module
...
Summary:
This diff adds support for an auth module. The module is used to provide
authentication and authorization (only user to role mappings). The module can
be written in any language and uses a simple protocol to communicate with
Memgraph.
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2359
2019-09-10 14:46:06 +02:00
Teon Banek
1000a5e544
Use BasicResult instead of optional for v2 Commit
...
Summary: Depends on D2365
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2366
2019-09-10 13:32:54 +02:00
Teon Banek
51d8d16114
Add utils::BasicResult specialization for void
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2365
2019-09-10 13:32:54 +02:00
Teon Banek
f02617f2bd
Replace query::GraphView with storage::View
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2356
2019-09-06 14:58:27 +02:00
Teon Banek
ec22026fed
Add glue::ToBolt(Vertex|Edge|Path|Value) for V2 storage
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2355
2019-09-06 10:51:10 +02:00
Teon Banek
2e51ef9f66
Use storage/v2/view in glue/communication
...
Summary:
Switching to Storage V2 API will require passing storage::View when
serializing VertexAccessor and EdgeAccessor, so this is just the first
step in adapting the code.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2352
2019-09-05 10:04:44 +02:00
Teon Banek
9a94205a07
Document exceptions and other details in storage v2 API
...
Summary:
Most instances of `@throw std::bad_alloc` are left unexplained as these
functions perform general heap allocations are it's obvious from the
function name that it will do so. Basically anything with `Create`, `Make` or
`Build` implies allocations. Additionally, which parts exactly perform
allocations are an implementation detail. Functions which do unexpected
heap allocations have the reason stated in the documentation, these
functions typically have exactly one spot which could raise such an
exception.
Some functions are marked as `noexcept`, these are usually "special
functions" such as constructors and operators. This could potentially
improve performance because STL may use API overloads that work faster
with `noexcept` stuff. Remaining non-throwing functions aren't marked as
`noexcept` as that wasn't our practice nor is common in our codebase. On
the other hand, if we continue enforcing the documentation of thrown
exceptions, perhaps we should start using `noexcept`.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2350
2019-09-05 10:04:40 +02:00
Teon Banek
02722a1ed5
Add default constructor and std::hash to v2/id_types
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2349
2019-09-03 16:13:52 +02:00
Teon Banek
7213bec886
Make Gid a full on class wrapper around uint64_t
...
Summary:
This makes Gid the same as the one in storage/v2. Before they can be
merge into one implementation, we probably want to have a similar
transition for remaining ID types.
Depends on D2346
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2347
2019-09-03 15:14:21 +02:00
Teon Banek
cdfaf0d4a6
Move gid::Gid to storage/common/types
...
Summary:
It never made sense that a global ID is its own namespace in the storage
directory tree.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2346
2019-09-03 14:57:44 +02:00
Ivan Paljak
58be850d5c
Fix HA log compaction test
...
Summary: The test now checks if the cluster is alive at the end of the test.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2343
2019-09-03 08:45:53 +02:00
Ivan Paljak
1dccf02e1b
Fix failed assertion in HA snapshot recovery
...
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2345
2019-09-03 08:10:33 +02:00
Teon Banek
726ae5da6a
Check for aggregations when planning RegexMatch
...
Reviewers: mferencevic, ipaljak, dsantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2344
2019-09-02 17:18:47 +02:00
Matej Ferencevic
60367a287e
Implement wrappers for STL containers with our allocator
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2342
2019-09-02 17:04:15 +02:00
Matej Ferencevic
a4a74934f4
Improve memory allocations in execution and storage
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2340
2019-09-02 17:03:58 +02:00
Teon Banek
c8340ad120
Merge old and new PropertyValue implementations
...
Summary:
This effectively replaces the old PropertyValue implementation from the
one in storage/v2
Depends on D2333
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2335
2019-09-02 16:43:50 +02:00
Teon Banek
32ae2b4d23
Correctly release PoolResource memory
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2341
2019-09-02 15:49:57 +02:00
Teon Banek
ed802073f6
Make PropertyValue constructors explicit
...
Summary: Depends on D2332
Reviewers: ipaljak, mferencevic
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2333
2019-09-02 12:31:53 +02:00
Matej Ferencevic
d3b141f3ba
Allocate initial execution memory
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2316
2019-09-02 11:40:38 +02:00
Teon Banek
9f4a7dcddf
Remove PropertyValue::Null
...
Reviewers: ipaljak, mferencevic
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2332
2019-08-29 09:02:51 +02:00
Teon Banek
02fb644bdc
Resolve unused variables
...
Reviewers: ipaljak, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2330
2019-08-27 16:10:00 +02:00
Teon Banek
a878a11e70
Add FunctionContext to simplify awesome function signature
...
Reviewers: ipaljak, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2327
2019-08-27 13:49:40 +02:00
Teon Banek
023538c19c
Add PoolResource benchmarking in execution and skiplist
...
Summary:
With a pool allocator, lookups in STL set and map are up to 50% faster.
This is probably due to contiguous memory of pooled objects, i.e. nodes
of those containers. In some cases, the lookup outperforms the SkipList.
Insertions are also faster, though not as dramatically, up to 30%. This
does make a significant difference when the STL containers are used in a
single thread as they outperform the SkipList significantly.
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2326
2019-08-27 09:32:01 +02:00
Teon Banek
1fa9d7752c
Fix a bug in Pool::Deallocate
...
Reviewers: mferencevic, ipaljak
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2325
2019-08-27 09:32:00 +02:00
Teon Banek
bb832de608
Prepend MonotonicBufferResource::Buffer to an allocation
...
Summary:
This is a different scheme for setting up a bookkeeping object while
still supporting arbitrary allocation alignment requests. The previous
scheme was simpler as it always allocated a power of 2 bytes, but the
trade-off was increased memory usage. This should waste less memory.
Reviewers: mtomic, mferencevic, ipaljak
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2321
2019-08-23 14:18:14 +02:00
Marin Tomic
7e741b8d25
Implement vertex count estimation
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2306
2019-08-22 17:34:00 +02:00
Teon Banek
97b20a9384
Use non-template Value invocation
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2317
2019-08-22 16:20:31 +02:00
Matej Ferencevic
529b7109f7
Use new SkipList for query caches
...
Reviewers: teon.banek, mtomic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2305
2019-08-22 14:10:41 +02:00
Matej Ferencevic
a9d2f4842f
Reduce GC CPU usage in storage v2
...
Reviewers: mtomic, teon.banek
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2313
2019-08-22 14:09:56 +02:00
Marin Tomic
21d461e77d
Skip deleted vertices when building index
...
Summary:
There's a possible race condition where we add a deleted vertex into
index and garbage collection removes it from main storage before indices are
cleaned-up.
Reviewers: mferencevic, teon.banek
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2314
2019-08-22 10:25:44 +02:00
Teon Banek
4f93632fb8
storage/v2: Add (In|Out)Degree to VertexAccessor
...
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2309
2019-08-21 12:58:00 +02:00
Marin Tomic
1ab0b8e0ff
Implement existence constraints
...
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2307
2019-08-20 16:27:36 +02:00
Teon Banek
b8e964a82d
Remove is_transaction_starter_ from Storage::Accessor
...
Reviewers: mferencevic, mtomic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2308
2019-08-20 12:43:05 +02:00
Matej Ferencevic
d263d0887f
Fix bug in storage v2 GC
...
Reviewers: mtomic, teon.banek
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2304
2019-08-19 13:21:35 +02:00
Teon Banek
ce9e2614fa
Invert the result of SetProperty and add documentation
...
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2297
2019-08-13 16:21:33 +02:00
Matija Santl
b684e697fd
Adjust raft constants for long running tests
...
Summary:
Based on the recent builds (https://apollo.memgraph.io/runs/642045/ ,
https://apollo.memgraph.io/runs/642700/ https://apollo.memgraph.io/runs/640896/
https://apollo.memgraph.io/runs/640538/ ) `ha` stress tests fail.
Every tests that failed, has a re-election in progress. I'm bumping election
timeout constatns in order to give the cluster more time to do what it needs to
do before going in the state where it fails.
Reviewers: ipaljak
Reviewed By: ipaljak
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2292
2019-08-13 10:40:24 +02:00
Teon Banek
f7575eb112
Add utilities for type checking awesome MG functions
...
Reviewers: mtomic, msantl
Reviewed By: mtomic, msantl
Subscribers: buda, pullbot
Differential Revision: https://phabricator.memgraph.io/D2259
2019-08-12 16:24:24 +02:00
Teon Banek
34f80722c2
Return Error::DELETED_OBJECT from CreateEdge instead of aborting
...
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2295
2019-08-09 12:38:20 +02:00
Teon Banek
e18cb7b4c7
Make Result constructors implicit
...
Reviewers: mferencevic, mtomic, msantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2293
2019-08-08 15:47:35 +02:00
Teon Banek
5bae9c6457
Move storage::Result to utils
...
Summary:
Utils now contain a BasicResult implementation which supports different
types of error. This will make it useful for other parts of the code as
well as during the transition from old to new storage.
Reviewers: mtomic, msantl, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2291
2019-08-08 14:37:06 +02:00
Teon Banek
1a20c557b8
Update storage API docs with thrown exceptions
...
Summary:
The documentation includes `std` exceptions like `std::bad_alloc` or
`std::system_error`, for which there's probably nothing we can do. This
may seem unnecessary, but it will be really helpful when writing the C
API for interfacing with custom modules and plugins, as well as when
switching to storage v2 API.
In general, we should start updating the documentation of functions
which may throw exceptions. This ought to be enforced in code review, so
that the implementation and documentation are kept in sync.
Reviewers: mferencevic, mtomic, msantl
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2288
2019-08-07 15:58:38 +02:00
Teon Banek
a3d99d7628
Update Code Review Guidelines with Exceptions section
...
Reviewers: mtomic, mferencevic, msantl, ipaljak, vkasljevic, dlozic, buda
Reviewed By: mferencevic, msantl, buda
Differential Revision: https://phabricator.memgraph.io/D2286
2019-08-07 15:58:38 +02:00
Matej Ferencevic
fb6dc83ef4
Replace bswap with proper endian functions
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2290
2019-08-07 15:45:03 +02:00
Teon Banek
134525851b
Expose Id mappings from accessor-less Storage
...
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2285
2019-08-06 14:30:21 +02:00
Teon Banek
ed9f82bcf4
Add a common VerticesIterable wrapper
...
Summary:
This ought to simplify the code which needs to work with any kind of
vertex iteration, be it through an index store or regular.
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2258
2019-08-06 13:30:31 +02:00
Matej Ferencevic
bad1f8b525
Remove copy constructor/assignment from SkipList accessors
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2230
2019-08-06 11:18:31 +02:00
Teon Banek
3a95a3c29d
Prepare utils/memory for switching to libstdc++-9
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2246
2019-07-26 15:47:16 +02:00
Teon Banek
124a44731d
Fix includes in utils/file.hpp
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2245
2019-07-26 15:47:15 +02:00
Teon Banek
fc493e36ff
Add lvalue and rvalue getters to storage::Result
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2242
2019-07-26 15:47:14 +02:00
Marin Tomic
35587cddbd
[StorageV2] Implement label and label-property indices
...
Reviewers: mferencevic, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2225
2019-07-26 12:23:18 +02:00
Teon Banek
6a2dc1eb9d
cmake: Allow absolute paths in define_add_lcp
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2240
2019-07-25 16:45:24 +02:00
Teon Banek
adc4ebacff
Make (Edge|Vertex)Accessor methods const as appropriate
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2232
2019-07-24 09:46:24 +02:00
Teon Banek
867f30d9b3
Add VerticesIterable to storage/v2
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2229
2019-07-23 13:04:16 +02:00
Marin Tomic
ffa76e59c9
Implement deferred vertex/edge deletion
...
Summary: this will make GC for indices easier
Reviewers: teon.banek, mferencevic
Reviewed By: teon.banek, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2223
2019-07-23 09:52:54 +02:00
Marin Tomic
08bf993a47
Add a global storage lock in storage v2
...
Reviewers: mferencevic, teon.banek
Reviewed By: mferencevic, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2202
2019-07-22 15:05:44 +02:00
Marin Tomic
5a3e98badd
Implement Synchronized<T> utility
...
Reviewers: mferencevic, teon.banek
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2222
2019-07-22 14:55:21 +02:00
Matej Ferencevic
d7d0963434
Implement explicit types in storage v2
...
Reviewers: teon.banek, mtomic
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2224
2019-07-22 14:16:02 +02:00
Teon Banek
e83abaaa5a
Add non-template Value getters to PropertyValue
...
Reviewers: mtomic, mferencevic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2216
2019-07-22 13:36:44 +02:00
Matej Ferencevic
e9a7623288
Implement name to id mapper in storage v2
...
Reviewers: teon.banek, mtomic
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2217
2019-07-19 11:24:27 +02:00
Ivan Paljak
fa4c303af6
Add HA normal operation long running test to daily build
...
Summary: Currently set to run for 2 hours.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2206
2019-07-18 16:53:07 +02:00
Matej Ferencevic
10136f43dc
Replace unordered_map with map in storage v2
...
Summary:
`std::unordered_map` is 56 bytes in size, `std::map` is 48 bytes in size.
Also, `std::map` doesn't require the key type to be hashable.
Reviewers: mtomic, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2218
2019-07-18 13:43:12 +02:00
Matej Ferencevic
111dd8bf19
Remove distributed
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2213
2019-07-17 15:23:42 +02:00
Teon Banek
59b3f84eb9
Set [[nodiscard]] attribute on storage::Result
...
Reviewers: mtomic, mferencevic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2214
2019-07-17 15:11:29 +02:00
Teon Banek
e7b1d1aa0c
Add std::hash for V2 (Edge|Vertex)Accessor
...
Reviewers: mferencevic, mtomic
Reviewed By: mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2212
2019-07-17 13:37:26 +02:00
Matej Ferencevic
4e1c7c9e34
Rename Return to Value in storage v2 Result
...
Reviewers: mtomic, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2199
2019-07-17 12:33:39 +02:00
Matej Ferencevic
b365037e23
Cleanup locks
...
Summary: Move RWLock and replace exceptions with `CHECK`s
Reviewers: mtomic, teon.banek
Reviewed By: mtomic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D2205
2019-07-17 10:33:44 +02:00