memgraph/tests
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
..
benchmark Improve property store performance 2020-05-05 10:55:00 +02:00
concurrent Implement concurrent tests for storage indices 2020-04-01 10:43:05 +02:00
drivers Rename Bolt flags 2019-12-09 11:24:09 +01:00
feature_benchmark Temporarily disable HA build and tests 2020-01-13 17:04:27 +01:00
integration Implement storage lock 2020-03-13 19:27:01 +01:00
macro_benchmark Remove leftover implementation required by the old storage 2020-03-02 12:45:18 +01:00
manual Remove leftover implementation required by the old storage 2020-03-02 12:45:18 +01:00
property_based Migrate property_based tests to storage v2 2020-01-13 13:09:57 +01:00
public_benchmark Rename Bolt flags 2019-12-09 11:24:09 +01:00
qa Make memgraph with storage v2 the main binary 2019-12-06 10:51:16 +01:00
stress Add community to Apollo build 2020-02-17 13:27:20 +01:00
unit Optimize IN list execution 2020-04-21 11:38:38 +02:00
.clang-tidy Add .clang-tidy for tests and update the config 2019-10-31 16:07:09 +01:00
apollo_runs.py Convert mgp_value to 'mgp' Python types, not '_mgp' ones 2020-03-06 11:23:08 +01:00
apollo_runs.yaml Add community to Apollo build 2020-02-17 13:27:20 +01:00
client-stress.sh Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
CMakeLists.txt Remove global include directories in CMake 2020-02-03 13:18:30 +01:00