Query allocator and evaluation allocator were different.
After analysis, was determined they should be the same, this will help
future development reduce TypeValue copies during queries.
Changes:
- Common allocator, PoolResource backed by MonotonicResource
- Optimized Pool, now O(1) alloc/dealloc as all chunks in Pool form a single
free list
- 2nd PoolResource, using bin sizing, not as perfect for memory usage but
O(1) bin selection
- Now have jemalloc's background thread to make sure decay and return
to OS happens
- Optimized ProperyValue to be faster at destruction/copy/move
- Less temporary memory allocations
- CSV reader now maintains a common line buffer it reuses on line reads
- Writing out bolt values, now reuses a values buffer
- Evaluating an int no longer makes temporary strings for errors it most
likely never throws
- ExpandVariable will reuse existing edge list in frame it one existed
tests/e2e
Framework to run end-to-end tests against Memgraph.
Notes
- If you change something under this directory and below (even a Python
script),
makehas to be run again because all tests are copied to the build directory and executed from there. - Use/extend
run.shif you run any e2e tests:- if all tests have to executed, use
run.sh - if a suite of tests have to be execute, take a look under
run.shhow to do so - if only a single test have to be execute, take a look at each individual binary/script, it's possible to manually pick the test
- if all tests have to executed, use