Add support for split file configuration
This commit is contained in:
parent
5273d319e2
commit
baacc52a65
@ -181,7 +181,11 @@ for dataset, tests in benchmarks:
|
|||||||
|
|
||||||
# Prepare runners and import the dataset.
|
# Prepare runners and import the dataset.
|
||||||
memgraph = runners.Memgraph(
|
memgraph = runners.Memgraph(
|
||||||
args.memgraph_binary, args.temporary_directory, not args.no_properties_on_edges, args.test_system_args
|
args.memgraph_binary,
|
||||||
|
args.temporary_directory,
|
||||||
|
not args.no_properties_on_edges,
|
||||||
|
args.test_system_args,
|
||||||
|
dataset.get_split_file(),
|
||||||
)
|
)
|
||||||
client = runners.Client(args.client_binary, args.temporary_directory)
|
client = runners.Client(args.client_binary, args.temporary_directory)
|
||||||
memgraph.start_preparation()
|
memgraph.start_preparation()
|
||||||
|
@ -63,6 +63,10 @@ class Dataset:
|
|||||||
raise ValueError("The size defined for this variant doesn't " "have the number of vertices and/or edges!")
|
raise ValueError("The size defined for this variant doesn't " "have the number of vertices and/or edges!")
|
||||||
self._num_vertices = self._size["vertices"]
|
self._num_vertices = self._size["vertices"]
|
||||||
self._num_edges = self._size["edges"]
|
self._num_edges = self._size["edges"]
|
||||||
|
if self.SPLIT_FILES is not None:
|
||||||
|
self._split_file = self.SPLIT_FILES.get(variant, None)
|
||||||
|
else:
|
||||||
|
self._split_file = None
|
||||||
|
|
||||||
def prepare(self, directory):
|
def prepare(self, directory):
|
||||||
if self._file is not None:
|
if self._file is not None:
|
||||||
@ -92,6 +96,11 @@ class Dataset:
|
|||||||
"""Returns number of vertices/edges for the current variant."""
|
"""Returns number of vertices/edges for the current variant."""
|
||||||
return self._size
|
return self._size
|
||||||
|
|
||||||
|
def get_split_file(self):
|
||||||
|
"""Returns the location of the split file of the dataset."""
|
||||||
|
assert self._split_file is not None
|
||||||
|
return self._split_file
|
||||||
|
|
||||||
# All tests should be query generator functions that output all of the
|
# All tests should be query generator functions that output all of the
|
||||||
# queries that should be executed by the runner. The functions should be
|
# queries that should be executed by the runner. The functions should be
|
||||||
# named `benchmark__GROUPNAME__TESTNAME` and should not accept any
|
# named `benchmark__GROUPNAME__TESTNAME` and should not accept any
|
||||||
@ -299,6 +308,12 @@ class AccessControl(Dataset):
|
|||||||
"medium": "https://s3.eu-west-1.amazonaws.com/deps.memgraph.io/dataset/accesscontrol/accesscontrol_medium.setup.cypher.gz",
|
"medium": "https://s3.eu-west-1.amazonaws.com/deps.memgraph.io/dataset/accesscontrol/accesscontrol_medium.setup.cypher.gz",
|
||||||
"large": "https://s3.eu-west-1.amazonaws.com/deps.memgraph.io/dataset/accesscontrol/accesscontrol_large.setup.cypher.gz",
|
"large": "https://s3.eu-west-1.amazonaws.com/deps.memgraph.io/dataset/accesscontrol/accesscontrol_large.setup.cypher.gz",
|
||||||
}
|
}
|
||||||
|
SPLIT_FILES = {
|
||||||
|
"empty_only_index": "splitfiles/accesscontrol_small.shard_configuration",
|
||||||
|
"small": "splitfiles/accesscontrol_small.shard_configuration",
|
||||||
|
"medium": "splitfiles/accesscontrol_medium.shard_configuration",
|
||||||
|
"large": "splitfiles/accesscontrol_large.shard_configuration",
|
||||||
|
}
|
||||||
SIZES = {
|
SIZES = {
|
||||||
"empty_only_index": {
|
"empty_only_index": {
|
||||||
"vertices": 0,
|
"vertices": 0,
|
||||||
|
@ -51,12 +51,13 @@ def _get_usage(pid):
|
|||||||
|
|
||||||
|
|
||||||
class Memgraph:
|
class Memgraph:
|
||||||
def __init__(self, memgraph_binary, temporary_dir, properties_on_edges, extra_args):
|
def __init__(self, memgraph_binary, temporary_dir, properties_on_edges, extra_args, split_file):
|
||||||
self._memgraph_binary = memgraph_binary
|
self._memgraph_binary = memgraph_binary
|
||||||
self._directory = tempfile.TemporaryDirectory(dir=temporary_dir)
|
self._directory = tempfile.TemporaryDirectory(dir=temporary_dir)
|
||||||
self._properties_on_edges = properties_on_edges
|
self._properties_on_edges = properties_on_edges
|
||||||
self._proc_mg = None
|
self._proc_mg = None
|
||||||
self._extra_args = extra_args
|
self._extra_args = extra_args
|
||||||
|
self._split_file = split_file
|
||||||
atexit.register(self._cleanup)
|
atexit.register(self._cleanup)
|
||||||
|
|
||||||
# Determine Memgraph version
|
# Determine Memgraph version
|
||||||
@ -85,6 +86,8 @@ class Memgraph:
|
|||||||
for i in range(0, len(args_list), 2):
|
for i in range(0, len(args_list), 2):
|
||||||
kwargs[args_list[i]] = args_list[i + 1]
|
kwargs[args_list[i]] = args_list[i + 1]
|
||||||
|
|
||||||
|
kwargs["split-file"] = self._split_file
|
||||||
|
|
||||||
return _convert_args_to_flags(self._memgraph_binary, **kwargs)
|
return _convert_args_to_flags(self._memgraph_binary, **kwargs)
|
||||||
|
|
||||||
def _start(self, **kwargs):
|
def _start(self, **kwargs):
|
||||||
|
Loading…
Reference in New Issue
Block a user