fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
# Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
# This source code is licensed under both the GPLv2 (found in the
|
|
# COPYING file in the root directory) and Apache 2.0 License
|
|
# (found in the LICENSE.Apache file in the root directory).
|
|
|
|
from abc import ABC, abstractmethod
|
|
import re
|
|
|
|
|
|
class BenchmarkRunner(ABC):
|
|
@staticmethod
|
|
@abstractmethod
|
|
def is_metric_better(new_metric, old_metric):
|
|
pass
|
|
|
|
@abstractmethod
|
|
def run_experiment(self):
|
|
# should return a list of DataSource objects
|
|
pass
|
|
|
|
@staticmethod
|
|
def get_info_log_file_name(log_dir, db_path):
|
|
# Example: DB Path = /dev/shm and OPTIONS file has option
|
|
# db_log_dir=/tmp/rocks/, then the name of the log file will be
|
|
# 'dev_shm_LOG' and its location will be /tmp/rocks. If db_log_dir is
|
|
# not specified in the OPTIONS file, then the location of the log file
|
|
# will be /dev/shm and the name of the file will be 'LOG'
|
|
file_name = ''
|
|
if log_dir:
|
|
# refer GetInfoLogPrefix() in rocksdb/util/filename.cc
|
|
# example db_path: /dev/shm/dbbench
|
|
file_name = db_path[1:] # to ignore the leading '/' character
|
|
to_be_replaced = re.compile('[^0-9a-zA-Z\-_\.]')
|
|
for character in to_be_replaced.findall(db_path):
|
|
file_name = file_name.replace(character, '_')
|
|
if not file_name.endswith('_'):
|
|
file_name += '_'
|
|
file_name += 'LOG'
|
|
return file_name
|
|
|