Tyler Neely
aebac2c519
Hoist read and write requests on the RSM into wrapper structs for futureproofing
2022-08-03 14:21:37 +00:00
gvolfing
b5cff5999b
Unfinished rsm changes
2022-08-03 14:39:09 +02:00
Tyler Neely
997fdf5a16
Check-in skeleton for RSM logic on top of Raft
2022-08-02 10:18:38 +00:00
Tyler Neely
8be88deee6
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T0941-MG-implement-basic-raft-version
2022-08-02 08:48:20 +00: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
Kostas
72b4337864
Added ScanVertices request/response example
2022-07-21 18:37:06 +03:00
János Benjamin Antal
ed71332773
Add dummy storage engine to test
2022-07-21 16:23:27 +02:00
Tyler Neely
fd3d70d847
Move raft-related code to replicated state machine (rsm) namespace
2022-07-21 12:41:02 +00:00
Tyler Neely
f8e5032011
Restructure files into namespaces and subdirectories
2022-07-21 12:10:23 +00:00
Tyler Neely
5b59d890c0
Remove awkward Reply sugar for now
2022-07-21 11:53:51 +00:00
Tyler Neely
0351db2461
Move future.hpp to src/io
2022-07-21 11:45:05 +00:00
Tyler Neely
c379475e12
Merge branch 'project-pineapples' of github.com:memgraph/memgraph into T0879-MG-transport-prototype
2022-07-21 11:01:04 +00:00
Tyler Neely
9c5d19bc19
Start to adapt the transport-related code to use namespaces
2022-07-21 11:00:11 +00:00
Tyler Neely
f6c2202772
Use anonymous namespace to avoid friend declarations in future.hpp
2022-07-21 10:49:19 +00:00
Tyler Neely
498ae97ae9
Clean up log messages
2022-07-21 10:26:08 +00:00
Tyler Neely
fbd015d3c6
Continue codebase clean-up in preparation for merge
2022-07-21 10:24:13 +00:00
Tyler Neely
1ef11a36f4
Apply feedback from cpplint
2022-07-21 09:33:06 +00:00
Tyler Neely
9ae1671e4f
Fix bug with MgFuture where its safety check was not correctly initialized
2022-07-20 18:17:06 +00:00
Tyler Neely
b4afe45de5
Handle Request timeouts properly in the simulator
2022-07-20 17:18:07 +00:00
Tyler Neely
581925e660
Fix a few bugs, expose stats
2022-07-20 17:07:18 +00:00
Tyler Neely
afef6dc11b
A large batch of bug fixes and clean-ups
2022-07-20 13:18:00 +00:00
Tyler Neely
689336e765
Fix several bugs, clean-ups and tuning
2022-07-19 14:57:01 +00:00
János Benjamin Antal
c0bee760bf
git
2022-07-18 08:21:04 +02:00
Marko Budiselic
1480d975a7
Fix the basic_request example, something sill broken
2022-07-17 17:22:39 +02:00
Tyler Neely
9dc37a87f7
Enable more aggressive message scrambling to get a race condition to jump out about 0.2% of the time
2022-07-15 16:46:54 +00:00
Tyler Neely
46a2879ece
Fix a number of bugs in raft, and it can now go for around 1400 simulations before hitting a race condition
2022-07-15 16:44:42 +00:00
Tyler Neely
b2142e8d38
Remove unnecessary log message
2022-07-15 16:20:05 +00:00
Tyler Neely
0dc69c180d
Start cranking up the testing intensity and fix a variety of correctness and code quality issues
2022-07-15 16:19:00 +00:00
Tyler Neely
ad1d8637e5
Fix race condition in simulator. Make leader election function more reliably in raft code
2022-07-15 09:07:39 +00:00
Tyler Neely
4876b7cd8c
Start removing load-bearing sleep statements to get race conditions to jump out in the simulator
2022-07-15 05:43:40 +00:00
Tyler Neely
a6133dab49
Start to tune various timeouts in the raft implementation
2022-07-15 05:38:04 +00:00
Tyler Neely
3466c15f76
Make raft work in the happy path
2022-07-14 19:57:52 +00:00
Tyler Neely
63beeb8771
Send log state along with AppendRequest messages from Leader
2022-07-14 19:06:56 +00:00
Tyler Neely
d14f7705b1
Get most of the raft data path up and running
2022-07-14 18:45:24 +00:00
Tyler Neely
5e98971bb2
Continue filling out AppendEntries state transition logic
2022-07-14 13:06:54 +00:00
Tyler Neely
80970a97f0
Get basic leader election to work and clean some things up
2022-07-14 12:18:09 +00:00
Tyler Neely
57533f2746
A large number of scattered cleanups. Don't use transport Request in state machine code
2022-07-14 10:50:49 +00:00
Tyler Neely
1a12a80af0
Continue to implement raft state machine transitions
2022-07-14 07:09:50 +00:00
Tyler Neely
30c97e658d
Implement some more of the raft state machine transitions
2022-07-13 22:31:51 +00:00
Tyler Neely
48ee40ce87
Start to fill out more raft logic now that role-specialized Handle and Cron are in place
2022-07-13 06:50:16 +00:00
Tyler Neely
d6742f643c
Significant simplification of event-handling logic by using std::visit while matching on both the message type and node role
2022-07-12 19:04:32 +00:00
Tyler Neely
2e5d8b7e8c
Check-in in-progress work for raft test on top of simulator
2022-07-11 18:01:13 +00:00
Tyler Neely
88eee66258
Small cleanup of basic_request test
2022-07-11 18:00:30 +00: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
Tyler Neely
15d637729e
Clean-up basic_request example
2022-07-08 14:10:33 +00:00
Tyler Neely
5ee95a2e70
Add ShutDown method to Simulator and update basic_request test to utilize it
2022-07-08 14:05:02 +00:00
Tyler Neely
eee2a7e019
Fix memory leak caught by LSAN
2022-07-08 11:04:44 +00: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
Tyler Neely
25b0a445b9
Properly fill response promises in the simulator
2022-07-08 08:21:37 +00:00