memgraph/tests
Matej Ferencevic 53c405c699 Throw exceptions on RPC failure and Distributed error handling
Summary:
This diff changes the RPC layer to directly return `TResponse` to the user when
issuing a `Call<...>` RPC call. The call throws an exception on failure
(instead of the previous return `nullopt`).

All servers (network, RPC and distributed) are set to have explicit `Shutdown`
methods so that a controlled shutdown can always be performed. The object
destructors now have `CHECK`s to enforce that the `AwaitShutdown` methods were
called.

The distributed memgraph is changed that none of the binaries (master/workers)
crash when there is a communication failure. Instead, the whole cluster starts
a graceful shutdown when a persistent communication error is detected.
Transient errors are allowed during execution. The transaction that errored out
will be aborted on the whole cluster. The cluster state is managed using a new
Heartbeat RPC call.

Reviewers: buda, teon.banek, msantl

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1604
2018-09-27 16:27:40 +02:00
..
benchmark Move Parameters into EvaluationContext 2018-09-11 13:32:29 +02:00
concurrent Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
distributed Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
drivers Integrate driver tests with Apollo 2018-08-22 18:31:37 +02:00
feature_benchmark Add kafka benchmark 2018-08-29 16:35:31 +02:00
integration Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
macro_benchmark Implement single node two-sided BFS 2018-08-29 12:56:39 +02:00
manual Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
property_based Separate distributed implementation of GraphDbAccessor 2018-07-26 09:16:39 +02:00
public_benchmark Update LDBC query implementation 2018-07-10 10:08:21 +02:00
qa Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
stress Rename bolt::DecodedValue to bolt::Value 2018-07-24 15:59:20 +02:00
unit Throw exceptions on RPC failure and Distributed error handling 2018-09-27 16:27:40 +02:00
apollo_runs.py Optimize Apollo build process 2018-05-16 14:52:27 +02:00
client-stress.sh Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
CMakeLists.txt Add kafka benchmark 2018-08-29 16:35:31 +02:00