memgraph/src/query
florijan 95f1b6fe56 Fix remote plan invalidation
Summary:
Ensures that query plans are invalidated on the remote only when it's
guaranteed they will never be used on the master. This is done by
invalidating remote caches in the `CachedPlan` destructor.

There are two unplesant side-effects. First, an RPC call is made in an
object destructor. This is somewhat ugly, but not that different then
making an RPC call that must succeed in any other function. Note that
this does NOT slow down any query execution because the relevant
destructor is called by the skiplist garbage collector. The second ugly
side-effect is that in the unit test now we need to sleep to ensure the
skiplist GC destructs a cached plan before checking that it's
invalidated on the remote worker.

We might want to redesign this at some point.

Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1302
2018-03-16 11:18:16 +01:00
..
frontend Add SINGLE function to openCypher 2018-02-13 17:30:44 +01:00
interpret Add test/manual/distributed_console 2018-02-23 15:23:26 +01:00
plan Check values can be used for range indexed ScanAll 2018-03-13 10:23:30 +01:00
common.cpp Implement distributed aware OrderBy operator 2018-02-23 17:44:21 +01:00
common.hpp Plan PullRemoteOrderBy 2018-02-26 11:15:46 +01:00
context.hpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
exceptions.hpp Vertex removal using rpcs 2018-02-28 11:35:44 +01:00
interpreter.cpp Fix remote plan invalidation 2018-03-16 11:18:16 +01:00
interpreter.hpp Fix remote plan invalidation 2018-03-16 11:18:16 +01:00
parameters.hpp Add distributed execution RPC 2018-01-25 14:50:28 +01:00
path.hpp Support graph elements in remote pull rpc 2018-02-01 10:53:41 +01:00
repl.cpp Invalidate distributed plan caches 2018-03-13 14:59:51 +01:00
repl.hpp Fix and rename REPL 2018-03-08 10:58:43 +01:00
typed_value.cpp Support graph elements in remote pull rpc 2018-02-01 10:53:41 +01:00
typed_value.hpp POC - Typed value assignment for different types. 2017-11-02 14:21:22 +01:00