From aadad8b18781329f80d048b67eb3fb80dac34607 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 15 Jul 2025 18:26:53 +0100 Subject: [PATCH 01/16] Removed very large benchmarks from SPEC. --- pyproject.toml | 2 +- .../__common__/timeseries.py | 34 +- .../__runner__/args.py | 44 +- .../__runner__/remote_profiling.py | 329 +++++++++ .../__runner__/runner.py | 670 ++++++++++++++++-- .../test-suites/defaults.yml | 3 + ...tring-get-10B-pipeline-100-nokeyprefix.yml | 4 + ...ng-set-update-del-ex-36000-pipeline-10.yml | 32 - ...-150Mkeys-string-set-ex-20-pipeline-10.yml | 30 - ..._benchmark-1Mkeys-100B-expire-use-case.yml | 4 +- ...r_benchmark-1Mkeys-10B-expire-use-case.yml | 4 +- ...mark-1Mkeys-10B-psetex-expire-use-case.yml | 4 +- ...hmark-1Mkeys-10B-setex-expire-use-case.yml | 4 +- ..._benchmark-1Mkeys-1KiB-expire-use-case.yml | 4 +- ..._benchmark-1Mkeys-4KiB-expire-use-case.yml | 4 +- ...tring-get-10B-pipeline-100-nokeyprefix.yml | 4 + ...set-get-with-expiration-240B-400_conns.yml | 6 +- ...ys-string-set-with-ex-100B-pipeline-10.yml | 2 +- ...-with-expiration-pipeline-10-400_conns.yml | 2 - ...et-ex-10-with-precondition-pipeline-10.yml | 34 - ...keys-string-set-ex-10years-pipeline-10.yml | 30 - ...rk-50Mkeys-string-set-ex-3-pipeline-10.yml | 30 - ...string-set-ex-random-range-pipeline-10.yml | 30 - ...ring-set-update-del-ex-120-pipeline-10.yml | 32 - ...20-precodition-multiclient-pipeline-10.yml | 34 - utils/tests/test_runner.py | 36 +- 26 files changed, 1061 insertions(+), 351 deletions(-) create mode 100644 redis_benchmarks_specification/__runner__/remote_profiling.py delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10-with-precondition-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10years-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-3-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-random-range-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-update-del-ex-120-pipeline-10.yml delete mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-80Mkeys-string-set-ex-20-precodition-multiclient-pipeline-10.yml diff --git a/pyproject.toml b/pyproject.toml index 6ec1a81c..24829c28 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.272" +version = "0.1.275" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__common__/timeseries.py b/redis_benchmarks_specification/__common__/timeseries.py index d6e79d9b..e1f14650 100644 --- a/redis_benchmarks_specification/__common__/timeseries.py +++ b/redis_benchmarks_specification/__common__/timeseries.py @@ -133,6 +133,9 @@ def extract_results_table( use_metric_context_path = False if len(find_res) > 1: use_metric_context_path = True + # Always use context path for precision_summary metrics to show actual precision levels + if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath: + use_metric_context_path = True for metric in find_res: metric_name = str(metric.path) metric_value = float(metric.value) @@ -142,15 +145,34 @@ def extract_results_table( if metric_jsonpath[0] == ".": metric_jsonpath = metric_jsonpath[1:] + # For precision_summary metrics, construct the full resolved path for display + display_path = metric_jsonpath + if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path: + # Replace the wildcard with the actual precision level + display_path = metric_jsonpath.replace("*", metric_context_path) + # retro-compatible naming if use_metric_context_path is False: metric_name = metric_jsonpath - - metric_name = metric_name.replace("'", "") - metric_name = metric_name.replace('"', "") - metric_name = metric_name.replace("(", "") - metric_name = metric_name.replace(")", "") - metric_name = metric_name.replace(" ", "_") + else: + # For display purposes, use the resolved path for precision_summary + if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath: + metric_name = display_path + else: + # Clean up the metric name for other cases + metric_name = metric_name.replace("'", "") + metric_name = metric_name.replace('"', "") + metric_name = metric_name.replace("(", "") + metric_name = metric_name.replace(")", "") + metric_name = metric_name.replace(" ", "_") + + # Apply standard cleaning to all metric names + if not ("precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path): + metric_name = metric_name.replace("'", "") + metric_name = metric_name.replace('"', "") + metric_name = metric_name.replace("(", "") + metric_name = metric_name.replace(")", "") + metric_name = metric_name.replace(" ", "_") results_matrix.append( [ diff --git a/redis_benchmarks_specification/__runner__/args.py b/redis_benchmarks_specification/__runner__/args.py index a6950af4..6f041d95 100644 --- a/redis_benchmarks_specification/__runner__/args.py +++ b/redis_benchmarks_specification/__runner__/args.py @@ -208,11 +208,17 @@ def create_client_runner_args(project_name): type=int, help="override memtier number of runs for each benchmark. By default will run once each test", ) + parser.add_argument( + "--timeout-buffer", + default=60, + type=int, + help="Buffer time in seconds to add to test-time for process timeout (both Docker containers and local processes). Default is 60 seconds.", + ) parser.add_argument( "--container-timeout-buffer", default=60, type=int, - help="Buffer time in seconds to add to test-time for container timeout. Default is 60 seconds.", + help="Deprecated: Use --timeout-buffer instead. Buffer time in seconds to add to test-time for container timeout.", ) parser.add_argument( "--cluster-mode", @@ -225,4 +231,40 @@ def create_client_runner_args(project_name): default="", help="UNIX Domain socket name", ) + parser.add_argument( + "--enable-remote-profiling", + default=False, + action="store_true", + help="Enable remote profiling of Redis processes via HTTP GET endpoint. Profiles are collected in folded format during benchmark execution.", + ) + parser.add_argument( + "--remote-profile-host", + type=str, + default="localhost", + help="Host for remote profiling HTTP endpoint. Default is localhost.", + ) + parser.add_argument( + "--remote-profile-port", + type=int, + default=8080, + help="Port for remote profiling HTTP endpoint. Default is 8080.", + ) + parser.add_argument( + "--remote-profile-output-dir", + type=str, + default="profiles", + help="Directory to store remote profiling output files. Default is 'profiles/'.", + ) + parser.add_argument( + "--remote-profile-username", + type=str, + default=None, + help="Username for HTTP basic authentication to remote profiling endpoint. Optional.", + ) + parser.add_argument( + "--remote-profile-password", + type=str, + default=None, + help="Password for HTTP basic authentication to remote profiling endpoint. Optional.", + ) return parser diff --git a/redis_benchmarks_specification/__runner__/remote_profiling.py b/redis_benchmarks_specification/__runner__/remote_profiling.py new file mode 100644 index 00000000..10c4f1a4 --- /dev/null +++ b/redis_benchmarks_specification/__runner__/remote_profiling.py @@ -0,0 +1,329 @@ +""" +Remote profiling utilities for Redis benchmark runner. + +This module provides functionality to trigger remote profiling of Redis processes +via HTTP GET endpoints during benchmark execution. Profiles are collected in +folded format for performance analysis. +""" + +import datetime +import logging +import os +import threading +import time +from pathlib import Path +from typing import Optional, Dict, Any +import requests + + +def extract_redis_pid(redis_conn) -> Optional[int]: + """ + Extract Redis process ID from Redis INFO command. + + Args: + redis_conn: Redis connection object + + Returns: + Redis process ID as integer, or None if not found + """ + try: + redis_info = redis_conn.info() + pid = redis_info.get("process_id") + if pid is not None: + logging.info(f"Extracted Redis PID: {pid}") + return int(pid) + else: + logging.warning("Redis process_id not found in INFO command") + return None + except Exception as e: + logging.error(f"Failed to extract Redis PID: {e}") + return None + + +def extract_redis_metadata(redis_conn) -> Dict[str, Any]: + """ + Extract Redis metadata for profile comments. + + Args: + redis_conn: Redis connection object + + Returns: + Dictionary containing Redis metadata + """ + try: + redis_info = redis_conn.info() + metadata = { + "redis_version": redis_info.get("redis_version", "unknown"), + "redis_git_sha1": redis_info.get("redis_git_sha1", "unknown"), + "redis_git_dirty": redis_info.get("redis_git_dirty", "unknown"), + "redis_build_id": redis_info.get("redis_build_id", "unknown"), + "process_id": redis_info.get("process_id", "unknown"), + "tcp_port": redis_info.get("tcp_port", "unknown"), + } + + # Use build_id if git_sha1 is empty or 0 + if metadata["redis_git_sha1"] in ("", 0, "0"): + metadata["redis_git_sha1"] = metadata["redis_build_id"] + + logging.info(f"Extracted Redis metadata: version={metadata['redis_version']}, sha={metadata['redis_git_sha1']}, pid={metadata['process_id']}") + return metadata + except Exception as e: + logging.error(f"Failed to extract Redis metadata: {e}") + return { + "redis_version": "unknown", + "redis_git_sha1": "unknown", + "redis_git_dirty": "unknown", + "redis_build_id": "unknown", + "process_id": "unknown", + "tcp_port": "unknown", + } + + +def calculate_profile_duration(benchmark_duration_seconds: int) -> int: + """ + Calculate profiling duration based on benchmark duration. + + Args: + benchmark_duration_seconds: Expected benchmark duration in seconds + + Returns: + Profiling duration in seconds (minimum: benchmark duration, maximum: 30) + """ + # Minimum duration is the benchmark duration, maximum is 30 seconds + duration = min(max(benchmark_duration_seconds, 10), 30) + logging.info(f"Calculated profile duration: {duration}s (benchmark: {benchmark_duration_seconds}s)") + return duration + + +def trigger_remote_profile( + host: str, + port: int, + pid: int, + duration: int, + timeout: int = 60, + username: Optional[str] = None, + password: Optional[str] = None +) -> Optional[str]: + """ + Trigger remote profiling via HTTP GET request. + + Args: + host: Remote host address + port: Remote port number + pid: Redis process ID + duration: Profiling duration in seconds + timeout: HTTP request timeout in seconds + username: Optional username for HTTP basic authentication + password: Optional password for HTTP basic authentication + + Returns: + Profile content in folded format, or None if failed + """ + url = f"http://{host}:{port}/debug/folded/profile" + params = { + "pid": pid, + "seconds": duration + } + + # Prepare authentication if provided + auth = None + if username is not None and password is not None: + auth = (username, password) + logging.info(f"Using HTTP basic authentication with username: {username}") + + try: + logging.info(f"Triggering remote profile: {url} with PID={pid}, duration={duration}s") + response = requests.get(url, params=params, timeout=timeout, auth=auth) + response.raise_for_status() + + profile_content = response.text + logging.info(f"Successfully collected profile: {len(profile_content)} characters") + return profile_content + + except requests.exceptions.Timeout: + logging.error(f"Remote profiling request timed out after {timeout}s") + return None + except requests.exceptions.ConnectionError: + logging.error(f"Failed to connect to remote profiling endpoint: {host}:{port}") + return None + except requests.exceptions.HTTPError as e: + logging.error(f"HTTP error during remote profiling: {e}") + if e.response.status_code == 401: + logging.error("Authentication failed - check username and password") + return None + except Exception as e: + logging.error(f"Unexpected error during remote profiling: {e}") + return None + + +def save_profile_with_metadata( + profile_content: str, + benchmark_name: str, + output_dir: str, + redis_metadata: Dict[str, Any], + duration: int +) -> Optional[str]: + """ + Save profile content to file with metadata comments. + + Args: + profile_content: Profile data in folded format + benchmark_name: Name of the benchmark + output_dir: Output directory path + redis_metadata: Redis metadata dictionary + duration: Profiling duration in seconds + + Returns: + Path to saved file, or None if failed + """ + try: + # Create output directory if it doesn't exist + Path(output_dir).mkdir(parents=True, exist_ok=True) + + # Generate filename + filename = f"{benchmark_name}.folded" + filepath = os.path.join(output_dir, filename) + + # Generate timestamp + timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Create metadata comment + metadata_comment = ( + f"# profile from redis sha = {redis_metadata['redis_git_sha1']} " + f"and pid {redis_metadata['process_id']} for duration of {duration}s. " + f"collection in date {timestamp}\n" + f"# redis_version: {redis_metadata['redis_version']}\n" + f"# redis_git_dirty: {redis_metadata['redis_git_dirty']}\n" + f"# tcp_port: {redis_metadata['tcp_port']}\n" + ) + + # Write file with metadata and profile content + with open(filepath, 'w') as f: + f.write(metadata_comment) + f.write(profile_content) + + logging.info(f"Saved profile to: {filepath}") + return filepath + + except Exception as e: + logging.error(f"Failed to save profile file: {e}") + return None + + +class RemoteProfiler: + """ + Remote profiler class to handle threaded profiling execution. + """ + + def __init__(self, host: str, port: int, output_dir: str, username: Optional[str] = None, password: Optional[str] = None): + self.host = host + self.port = port + self.output_dir = output_dir + self.username = username + self.password = password + self.profile_thread = None + self.profile_result = None + self.profile_error = None + + def start_profiling( + self, + redis_conn, + benchmark_name: str, + benchmark_duration_seconds: int + ) -> bool: + """ + Start profiling in a separate thread. + + Args: + redis_conn: Redis connection object + benchmark_name: Name of the benchmark + benchmark_duration_seconds: Expected benchmark duration + + Returns: + True if profiling thread started successfully, False otherwise + """ + try: + # Extract Redis metadata and PID + redis_metadata = extract_redis_metadata(redis_conn) + pid = redis_metadata.get("process_id") + + if pid == "unknown" or pid is None: + logging.error("Cannot start remote profiling: Redis PID not available") + return False + + # Calculate profiling duration + duration = calculate_profile_duration(benchmark_duration_seconds) + + # Start profiling thread + self.profile_thread = threading.Thread( + target=self._profile_worker, + args=(pid, duration, benchmark_name, redis_metadata), + daemon=True + ) + self.profile_thread.start() + + logging.info(f"Started remote profiling thread for benchmark: {benchmark_name}") + return True + + except Exception as e: + logging.error(f"Failed to start remote profiling: {e}") + return False + + def _profile_worker(self, pid: int, duration: int, benchmark_name: str, redis_metadata: Dict[str, Any]): + """ + Worker function for profiling thread. + """ + try: + # Trigger remote profiling + profile_content = trigger_remote_profile( + self.host, self.port, pid, duration, + username=self.username, password=self.password + ) + + if profile_content: + # Save profile with metadata + filepath = save_profile_with_metadata( + profile_content, benchmark_name, self.output_dir, redis_metadata, duration + ) + self.profile_result = filepath + else: + self.profile_error = "Failed to collect profile content" + + except Exception as e: + self.profile_error = f"Profile worker error: {e}" + logging.error(self.profile_error) + + def wait_for_completion(self, timeout: int = 60) -> bool: + """ + Wait for profiling thread to complete. + + Args: + timeout: Maximum time to wait in seconds + + Returns: + True if completed successfully, False if timed out or failed + """ + if self.profile_thread is None: + return False + + try: + self.profile_thread.join(timeout=timeout) + + if self.profile_thread.is_alive(): + logging.warning(f"Remote profiling thread did not complete within {timeout}s") + return False + + if self.profile_error: + logging.error(f"Remote profiling failed: {self.profile_error}") + return False + + if self.profile_result: + logging.info(f"Remote profiling completed successfully: {self.profile_result}") + return True + else: + logging.warning("Remote profiling completed but no result available") + return False + + except Exception as e: + logging.error(f"Error waiting for remote profiling completion: {e}") + return False diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index 967d7f79..9d2b573e 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -4,6 +4,7 @@ import math import os import shutil +import subprocess import sys import tempfile import traceback @@ -62,6 +63,84 @@ extract_client_tools, ) from redis_benchmarks_specification.__runner__.args import create_client_runner_args +from redis_benchmarks_specification.__runner__.remote_profiling import RemoteProfiler + + +def run_local_command_with_timeout(command_str, timeout_seconds, description="command"): + """ + Run a local command with timeout support. + + Args: + command_str: The command string to execute + timeout_seconds: Timeout in seconds + description: Description for logging + + Returns: + tuple: (success, stdout, stderr) + """ + try: + logging.info(f"Running {description} with {timeout_seconds}s timeout: {command_str}") + + # Use shell=True to support complex command strings with pipes, etc. + process = subprocess.Popen( + command_str, + shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True + ) + + try: + stdout, stderr = process.communicate(timeout=timeout_seconds) + return_code = process.returncode + + if return_code == 0: + logging.info(f"{description} completed successfully") + return True, stdout, stderr + else: + logging.error(f"{description} failed with return code {return_code}") + logging.error(f"stderr: {stderr}") + return False, stdout, stderr + + except subprocess.TimeoutExpired: + logging.error(f"{description} timed out after {timeout_seconds} seconds") + process.kill() + try: + stdout, stderr = process.communicate(timeout=5) # Give 5 seconds to cleanup + except subprocess.TimeoutExpired: + stdout, stderr = "", "Process killed due to timeout" + return False, stdout, f"Timeout after {timeout_seconds} seconds. {stderr}" + + except Exception as e: + logging.error(f"Error running {description}: {e}") + return False, "", str(e) + + +def calculate_process_timeout(command_str, buffer_timeout): + """ + Calculate timeout for a process based on test-time parameter and buffer. + + Args: + command_str: The command string to analyze + buffer_timeout: Buffer time to add to test-time + + Returns: + int: Timeout in seconds + """ + default_timeout = 300 # 5 minutes default + + if "test-time" in command_str: + # Try to extract test time and add buffer + # Handle both --test-time (memtier) and -test-time (pubsub-sub-bench) + test_time_match = re.search(r"--?test-time[=\s]+(\d+)", command_str) + if test_time_match: + test_time = int(test_time_match.group(1)) + timeout = test_time + buffer_timeout + logging.info(f"Set process timeout to {timeout}s (test-time: {test_time}s + {buffer_timeout}s buffer)") + return timeout + + logging.info(f"Using default process timeout: {default_timeout}s") + return default_timeout def parse_size(size): @@ -91,6 +170,31 @@ def parse_size(size): return int(number * units[unit]) +def extract_expected_benchmark_duration(benchmark_command_str, override_memtier_test_time): + """ + Extract expected benchmark duration from command string or override. + + Args: + benchmark_command_str: The benchmark command string + override_memtier_test_time: Override test time value + + Returns: + Expected duration in seconds, or 30 as default + """ + if override_memtier_test_time > 0: + return override_memtier_test_time + + # Try to extract test-time from command string + if "test-time" in benchmark_command_str: + # Handle both --test-time (memtier) and -test-time (pubsub-sub-bench) + test_time_match = re.search(r"--?test-time[=\s]+(\d+)", benchmark_command_str) + if test_time_match: + return int(test_time_match.group(1)) + + # Default duration if not found + return 30 + + def run_multiple_clients( benchmark_config, docker_client, @@ -181,6 +285,30 @@ def run_multiple_clients( unix_socket, None, # username ) + elif "vector-db-benchmark" in client_tool: + ( + _, + benchmark_command_str, + arbitrary_command, + client_env_vars, + ) = prepare_vector_db_benchmark_parameters( + client_config, + client_tool, + port, + host, + password, + local_benchmark_output_filename, + oss_cluster_api_enabled, + tls_enabled, + tls_skip_verify, + test_tls_cert, + test_tls_key, + test_tls_cacert, + resp_version, + override_memtier_test_time, + unix_socket, + None, # username + ) else: # Handle other benchmark tools ( @@ -199,9 +327,8 @@ def run_multiple_clients( # Calculate container timeout container_timeout = 300 # 5 minutes default - buffer_timeout = ( - args.container_timeout_buffer - ) # Configurable buffer from command line + # Use new timeout_buffer argument, fallback to container_timeout_buffer for backward compatibility + buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) if "test-time" in benchmark_command_str: # Try to extract test time and add buffer import re @@ -224,23 +351,51 @@ def run_multiple_clients( # Start container (detached) import os - container = docker_client.containers.run( - image=client_image, - volumes={ - temporary_dir_client: { - "bind": client_mnt_point, - "mode": "rw", - }, + # Set working directory based on tool + working_dir = benchmark_tool_workdir + if "vector-db-benchmark" in client_tool: + working_dir = "/app" # vector-db-benchmark needs to run from /app + + # Prepare container arguments + volumes = { + temporary_dir_client: { + "bind": client_mnt_point, + "mode": "rw", }, - auto_remove=False, - privileged=True, - working_dir=benchmark_tool_workdir, - command=benchmark_command_str, - network_mode="host", - detach=True, - cpuset_cpus=client_cpuset_cpus, - user=f"{os.getuid()}:{os.getgid()}", # Run as current user to fix permissions - ) + } + + # For vector-db-benchmark, also mount the results directory + if "vector-db-benchmark" in client_tool: + volumes[temporary_dir_client] = { + "bind": "/app/results", + "mode": "rw", + } + + container_kwargs = { + "image": client_image, + "volumes": volumes, + "auto_remove": False, + "privileged": True, + "working_dir": working_dir, + "command": benchmark_command_str, + "network_mode": "host", + "detach": True, + "cpuset_cpus": client_cpuset_cpus, + } + + # Only add user for non-vector-db-benchmark tools to avoid permission issues + if "vector-db-benchmark" not in client_tool: + container_kwargs["user"] = f"{os.getuid()}:{os.getgid()}" + + # Add environment variables for vector-db-benchmark + if "vector-db-benchmark" in client_tool: + try: + container_kwargs["environment"] = client_env_vars + except NameError: + # client_env_vars not defined, skip environment variables + pass + + container = docker_client.containers.run(**container_kwargs) containers.append( { @@ -334,6 +489,7 @@ def run_multiple_clients( aggregated_json = {} memtier_json = None pubsub_json = None + vector_json = None for result in successful_results: client_index = result["client_index"] @@ -360,6 +516,19 @@ def run_multiple_clients( logging.info( f"Successfully read pubsub-sub-bench JSON output from client {client_index}" ) + elif "vector-db-benchmark" in tool: + # For vector-db-benchmark, look for summary JSON file + summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")] + if summary_files: + summary_filepath = os.path.join(temporary_dir_client, summary_files[0]) + try: + with open(summary_filepath, 'r') as f: + vector_json = json.load(f) + logging.info(f"Successfully read vector-db-benchmark JSON output from {summary_files[0]}") + except Exception as e: + logging.warning(f"Failed to read vector-db-benchmark JSON from {summary_files[0]}: {e}") + else: + logging.warning(f"No vector-db-benchmark summary JSON file found for client {client_index}") logging.info( f"Successfully read JSON output from client {client_index} ({tool})" @@ -376,16 +545,32 @@ def run_multiple_clients( f"JSON output file not found for client {client_index}: {json_filepath}" ) - # Merge JSON outputs from both tools - if memtier_json and pubsub_json: + # Merge JSON outputs from all tools + if memtier_json and pubsub_json and vector_json: + # Use memtier as base and add other metrics + aggregated_json = memtier_json.copy() + aggregated_json.update(pubsub_json) + aggregated_json.update(vector_json) + aggregated_stdout = json.dumps(aggregated_json, indent=2) + logging.info("Using merged JSON results from memtier, pubsub-sub-bench, and vector-db-benchmark clients") + elif memtier_json and pubsub_json: # Use memtier as base and add pubsub metrics aggregated_json = memtier_json.copy() - # Add pubsub metrics to the aggregated result aggregated_json.update(pubsub_json) aggregated_stdout = json.dumps(aggregated_json, indent=2) - logging.info( - "Using merged JSON results from memtier and pubsub-sub-bench clients" - ) + logging.info("Using merged JSON results from memtier and pubsub-sub-bench clients") + elif memtier_json and vector_json: + # Use memtier as base and add vector metrics + aggregated_json = memtier_json.copy() + aggregated_json.update(vector_json) + aggregated_stdout = json.dumps(aggregated_json, indent=2) + logging.info("Using merged JSON results from memtier and vector-db-benchmark clients") + elif pubsub_json and vector_json: + # Use pubsub as base and add vector metrics + aggregated_json = pubsub_json.copy() + aggregated_json.update(vector_json) + aggregated_stdout = json.dumps(aggregated_json, indent=2) + logging.info("Using merged JSON results from pubsub-sub-bench and vector-db-benchmark clients") elif memtier_json: # Only memtier available aggregated_json = memtier_json @@ -396,12 +581,15 @@ def run_multiple_clients( aggregated_json = pubsub_json aggregated_stdout = json.dumps(aggregated_json, indent=2) logging.info("Using JSON results from pubsub-sub-bench client only") + elif vector_json: + # Only vector-db-benchmark available + aggregated_json = vector_json + aggregated_stdout = json.dumps(aggregated_json, indent=2) + logging.info("Using JSON results from vector-db-benchmark client only") else: # Fall back to concatenated stdout aggregated_stdout = "\n".join([r["stdout"] for r in successful_results]) - logging.warning( - "No JSON results found, falling back to concatenated stdout" - ) + logging.warning("No JSON results found, falling back to concatenated stdout") return aggregated_stdout, results @@ -665,6 +853,71 @@ def prepare_memtier_benchmark_parameters( return None, benchmark_command_str, arbitrary_command +def prepare_vector_db_benchmark_parameters( + clientconfig, + full_benchmark_path, + port, + server, + password, + local_benchmark_output_filename, + oss_cluster_api_enabled=False, + tls_enabled=False, + tls_skip_verify=False, + tls_cert=None, + tls_key=None, + tls_cacert=None, + resp_version=None, + override_test_time=0, + unix_socket="", + username=None, +): + """ + Prepare vector-db-benchmark command parameters + """ + arbitrary_command = False + + benchmark_command = [ + "/app/run.py", + "--host", + f"{server}", + ] + + # Add port as environment variable (vector-db-benchmark uses env vars) + env_vars = {} + if port is not None: + env_vars["REDIS_PORT"] = str(port) + if password is not None: + env_vars["REDIS_AUTH"] = password + if username is not None: + env_vars["REDIS_USER"] = username + + # Add engines parameter + engines = clientconfig.get("engines", "vectorsets-fp32-default") + benchmark_command.extend(["--engines", engines]) + + # Add datasets parameter + datasets = clientconfig.get("datasets", "random-100") + benchmark_command.extend(["--datasets", datasets]) + + # Add other optional parameters + if "parallels" in clientconfig: + benchmark_command.extend(["--parallels", str(clientconfig["parallels"])]) + + if "queries" in clientconfig: + benchmark_command.extend(["--queries", str(clientconfig["queries"])]) + + if "timeout" in clientconfig: + benchmark_command.extend(["--timeout", str(clientconfig["timeout"])]) + + # Add custom arguments if specified + if "arguments" in clientconfig: + benchmark_command_str = " ".join(benchmark_command) + " " + clientconfig["arguments"] + else: + benchmark_command_str = " ".join(benchmark_command) + + return benchmark_command, benchmark_command_str, arbitrary_command, env_vars + + def prepare_pubsub_sub_bench_parameters( clientconfig, full_benchmark_path, @@ -899,6 +1152,23 @@ def delete_temporary_files( redis_pid = conn.info()["process_id"] redis_pids.append(redis_pid) + # Check if all tested commands are supported by this Redis instance + supported_commands = get_supported_redis_commands(redis_conns) + commands_supported, unsupported_commands = check_test_command_support( + benchmark_config, supported_commands + ) + + if not commands_supported: + logging.warning( + f"Skipping test {test_name} due to unsupported commands: {unsupported_commands}" + ) + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + github_actor = f"{tf_triggering_env}-{running_platform}" dso = "redis-server" profilers_artifacts_matrix = [] @@ -1047,6 +1317,9 @@ def delete_temporary_files( continue if "dbconfig" in benchmark_config: if "preload_tool" in benchmark_config["dbconfig"]: + # Get timeout buffer for preload + buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) + res = data_prepopulation_step( benchmark_config, benchmark_tool_workdir, @@ -1067,6 +1340,7 @@ def delete_temporary_files( password, oss_cluster_api_enabled, unix_socket, + buffer_timeout, ) if res is False: logging.warning( @@ -1208,6 +1482,30 @@ def delete_temporary_files( unix_socket, None, # username ) + elif "vector-db-benchmark" in benchmark_tool: + ( + _, + benchmark_command_str, + arbitrary_command, + env_vars, + ) = prepare_vector_db_benchmark_parameters( + benchmark_config["clientconfig"], + full_benchmark_path, + port, + host, + password, + local_benchmark_output_filename, + oss_cluster_api_enabled, + tls_enabled, + tls_skip_verify, + test_tls_cert, + test_tls_key, + test_tls_cacert, + resp_version, + override_memtier_test_time, + unix_socket, + None, # username + ) else: # prepare the benchmark command for other tools ( @@ -1241,6 +1539,40 @@ def delete_temporary_files( profiler_call_graph_mode, ) + # start remote profiling if enabled + remote_profiler = None + if args.enable_remote_profiling: + try: + remote_profiler = RemoteProfiler( + args.remote_profile_host, + args.remote_profile_port, + args.remote_profile_output_dir, + args.remote_profile_username, + args.remote_profile_password + ) + + # Extract expected benchmark duration + expected_duration = extract_expected_benchmark_duration( + benchmark_command_str, override_memtier_test_time + ) + + # Start remote profiling + profiling_started = remote_profiler.start_profiling( + redis_conns[0] if redis_conns else None, + test_name, + expected_duration + ) + + if profiling_started: + logging.info(f"Started remote profiling for test: {test_name}") + else: + logging.warning(f"Failed to start remote profiling for test: {test_name}") + remote_profiler = None + + except Exception as e: + logging.error(f"Error starting remote profiling: {e}") + remote_profiler = None + # run the benchmark benchmark_start_time = datetime.datetime.now() @@ -1284,13 +1616,23 @@ def delete_temporary_files( + " " + benchmark_command_str ) - logging.info( - "Running memtier benchmark command {}".format( - benchmark_command_str - ) + + # Calculate timeout for local process + buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) + process_timeout = calculate_process_timeout(benchmark_command_str, buffer_timeout) + + # Run with timeout + success, client_container_stdout, stderr = run_local_command_with_timeout( + benchmark_command_str, + process_timeout, + "memtier benchmark" ) - stream = os.popen(benchmark_command_str) - client_container_stdout = stream.read() + + if not success: + logging.error(f"Memtier benchmark failed: {stderr}") + # Continue with the test but log the failure + client_container_stdout = f"ERROR: {stderr}" + move_command = "mv {} {}".format( local_benchmark_output_filename, temporary_dir_client ) @@ -1305,22 +1647,53 @@ def delete_temporary_files( ) # Use explicit container management for single client - container = docker_client.containers.run( - image=client_container_image, - volumes={ - temporary_dir_client: { - "bind": client_mnt_point, - "mode": "rw", - }, + import os + + # Set working directory based on tool + working_dir = benchmark_tool_workdir + if "vector-db-benchmark" in benchmark_tool: + working_dir = "/app" # vector-db-benchmark needs to run from /app + + # Prepare volumes + volumes = { + temporary_dir_client: { + "bind": client_mnt_point, + "mode": "rw", }, - auto_remove=False, - privileged=True, - working_dir=benchmark_tool_workdir, - command=benchmark_command_str, - network_mode="host", - detach=True, - cpuset_cpus=client_cpuset_cpus, - ) + } + + # For vector-db-benchmark, also mount the results directory + if "vector-db-benchmark" in benchmark_tool: + volumes[temporary_dir_client] = { + "bind": "/app/results", + "mode": "rw", + } + + container_kwargs = { + "image": client_container_image, + "volumes": volumes, + "auto_remove": False, + "privileged": True, + "working_dir": working_dir, + "command": benchmark_command_str, + "network_mode": "host", + "detach": True, + "cpuset_cpus": client_cpuset_cpus, + } + + # Only add user for non-vector-db-benchmark tools to avoid permission issues + if "vector-db-benchmark" not in benchmark_tool: + container_kwargs["user"] = f"{os.getuid()}:{os.getgid()}" + + # Add environment variables for vector-db-benchmark + if "vector-db-benchmark" in benchmark_tool: + try: + container_kwargs["environment"] = env_vars + except NameError: + # env_vars not defined, skip environment variables + pass + + container = docker_client.containers.run(**container_kwargs) # Wait for container and get output try: @@ -1370,7 +1743,25 @@ def delete_temporary_files( test_name, ) + # wait for remote profiling completion + if remote_profiler is not None: + try: + logging.info("Waiting for remote profiling to complete...") + profiling_success = remote_profiler.wait_for_completion(timeout=60) + if profiling_success: + logging.info("Remote profiling completed successfully") + else: + logging.warning("Remote profiling did not complete successfully") + except Exception as e: + logging.error(f"Error waiting for remote profiling completion: {e}") + logging.info("Printing client tool stdout output") + if client_container_stdout: + print("=== Container Output ===") + print(client_container_stdout) + print("=== End Container Output ===") + else: + logging.warning("No container output captured") used_memory_check( test_name, @@ -1428,13 +1819,30 @@ def delete_temporary_files( full_result_path = "{}/{}".format( temporary_dir_client, local_benchmark_output_filename ) + elif "vector-db-benchmark" in benchmark_tool: + # For vector-db-benchmark, look for summary JSON file + import os + summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")] + if summary_files: + full_result_path = os.path.join(temporary_dir_client, summary_files[0]) + logging.info(f"Found vector-db-benchmark summary file: {summary_files[0]}") + else: + logging.warning("No vector-db-benchmark summary JSON file found") + # Create empty results dict to avoid crash + results_dict = {} + logging.info(f"Reading results json from {full_result_path}") - with open( - full_result_path, - "r", - ) as json_file: - results_dict = json.load(json_file) + if "vector-db-benchmark" in benchmark_tool and not os.path.exists(full_result_path): + # Handle case where vector-db-benchmark didn't produce results + results_dict = {} + logging.warning("Vector-db-benchmark did not produce results file") + else: + with open( + full_result_path, + "r", + ) as json_file: + results_dict = json.load(json_file) print_results_table_stdout( benchmark_config, default_metrics, @@ -1661,7 +2069,32 @@ def print_results_table_stdout( ] results_matrix = extract_results_table(metrics, results_dict) - results_matrix = [[x[0], f"{x[3]:.3f}"] for x in results_matrix] + # Use resolved metric name for precision_summary metrics, otherwise use original path + def get_display_name(x): + # For precision_summary metrics with wildcards, construct the resolved path + if (len(x) > 1 and + isinstance(x[0], str) and + "precision_summary" in x[0] and + "*" in x[0]): + + # Look for the precision level in the cleaned metrics logs + # We need to find the corresponding cleaned metric to get the precision level + # For now, let's extract it from the time series logs that we know are working + # The pattern is: replace "*" with the actual precision level + + # Since we know from logs that the precision level is available, + # let's reconstruct it from the metric context path (x[1]) if available + if len(x) > 1 and isinstance(x[1], str) and x[1].startswith("'") and x[1].endswith("'"): + precision_level = x[1] # This should be something like "'1.0000'" + resolved_path = x[0].replace("*", precision_level) + return resolved_path + + return x[0] # Use original path + + results_matrix = [ + [get_display_name(x), f"{x[3]:.3f}"] + for x in results_matrix + ] writer = MarkdownTableWriter( table_name=table_name, headers=results_matrix_headers, @@ -1675,14 +2108,19 @@ def print_redis_info_section(redis_conns): if redis_conns is not None and len(redis_conns) > 0: try: redis_info = redis_conns[0].info() + server_name = "redis" + if "server_name" in redis_info: + server_name = redis_info['server_name'] print("\n# Redis Server Information") redis_info_data = [ - ["Redis Version", redis_info.get("redis_version", "unknown")], - ["Redis Git SHA1", redis_info.get("redis_git_sha1", "unknown")], - ["Redis Git Dirty", str(redis_info.get("redis_git_dirty", "unknown"))], - ["Redis Build ID", redis_info.get("redis_build_id", "unknown")], - ["Redis Mode", redis_info.get("redis_mode", "unknown")], + [f"{server_name} version", redis_info.get(f"{server_name}_version", "unknown")], + ["redis version", redis_info.get("redis_version", "unknown")], + ["io_threads_active", redis_info.get("io_threads_active", "unknown")], + [f"{server_name} Git SHA1", redis_info.get("redis_git_sha1", "unknown")], + [f"{server_name} Git Dirty", str(redis_info.get("redis_git_dirty", "unknown"))], + [f"{server_name} Build ID", redis_info.get("redis_build_id", "unknown")], + [f"{server_name} Mode", redis_info.get("redis_mode", "unknown")], ["OS", redis_info.get("os", "unknown")], ["Arch Bits", str(redis_info.get("arch_bits", "unknown"))], ["GCC Version", redis_info.get("gcc_version", "unknown")], @@ -1710,6 +2148,78 @@ def print_redis_info_section(redis_conns): logging.warning(f"Failed to collect Redis server information: {e}") +def get_supported_redis_commands(redis_conns): + """Get list of supported Redis commands from the server""" + if redis_conns is not None and len(redis_conns) > 0: + try: + # Execute COMMAND to get all supported commands + commands_info = redis_conns[0].execute_command("COMMAND") + logging.info(f"COMMAND response type: {type(commands_info)}, length: {len(commands_info) if hasattr(commands_info, '__len__') else 'N/A'}") + + # Extract command names + supported_commands = set() + + if isinstance(commands_info, dict): + # COMMAND response is a dict with command names as keys + for cmd_name in commands_info.keys(): + if isinstance(cmd_name, bytes): + cmd_name = cmd_name.decode('utf-8') + supported_commands.add(str(cmd_name).upper()) + elif isinstance(commands_info, (list, tuple)): + # Fallback for list format (first element of each command info array) + for cmd_info in commands_info: + if isinstance(cmd_info, (list, tuple)) and len(cmd_info) > 0: + cmd_name = cmd_info[0] + if isinstance(cmd_name, bytes): + cmd_name = cmd_name.decode('utf-8') + supported_commands.add(str(cmd_name).upper()) + + logging.info(f"Retrieved {len(supported_commands)} supported Redis commands") + + # Log some sample commands for debugging + if supported_commands: + sample_commands = sorted(list(supported_commands))[:10] + logging.info(f"Sample commands: {sample_commands}") + + # Check specifically for vector commands + vector_commands = [cmd for cmd in supported_commands if cmd.startswith('V')] + if vector_commands: + logging.info(f"Vector commands found: {sorted(vector_commands)}") + + return supported_commands + except Exception as e: + logging.warning(f"Failed to get supported Redis commands: {e}") + logging.warning("Proceeding without command validation") + return None + return None + + +def check_test_command_support(benchmark_config, supported_commands): + """Check if all tested-commands in the benchmark config are supported""" + if supported_commands is None: + logging.warning("No supported commands list available, skipping command check") + return True, [] + + if "tested-commands" not in benchmark_config: + logging.info("No tested-commands specified in benchmark config") + return True, [] + + tested_commands = benchmark_config["tested-commands"] + unsupported_commands = [] + + for cmd in tested_commands: + cmd_upper = cmd.upper() + if cmd_upper not in supported_commands: + unsupported_commands.append(cmd) + + if unsupported_commands: + logging.warning(f"Unsupported commands found: {unsupported_commands}") + return False, unsupported_commands + else: + logging.info(f"All tested commands are supported: {tested_commands}") + return True, [] + + def prepare_overall_total_test_results( benchmark_config, default_metrics, @@ -1728,8 +2238,25 @@ def prepare_overall_total_test_results( None, ) current_test_results_matrix = extract_results_table(metrics, results_dict) + + # Use the same display name logic as in the individual test results + def get_overall_display_name(x): + # For precision_summary metrics with wildcards, construct the resolved path + if (len(x) > 1 and + isinstance(x[0], str) and + "precision_summary" in x[0] and + "*" in x[0]): + + # Reconstruct resolved path from metric context path (x[1]) if available + if len(x) > 1 and isinstance(x[1], str) and x[1].startswith("'") and x[1].endswith("'"): + precision_level = x[1] # This should be something like "'1.0000'" + resolved_path = x[0].replace("*", precision_level) + return resolved_path + + return x[0] # Use original path + current_test_results_matrix = [ - [test_name, x[0], f"{x[3]:.3f}"] for x in current_test_results_matrix + [test_name, get_overall_display_name(x), f"{x[3]:.3f}"] for x in current_test_results_matrix ] overall_results_matrix.extend(current_test_results_matrix) @@ -1754,6 +2281,7 @@ def data_prepopulation_step( password=None, oss_cluster_api_enabled=False, unix_socket="", + timeout_buffer=60, ): result = True # setup the benchmark @@ -1815,13 +2343,21 @@ def data_prepopulation_step( preload_command_str = ( "taskset -c " + client_cpuset_cpus + " " + preload_command_str ) - logging.info( - "Pre-loading using memtier benchmark command {}".format( - preload_command_str - ) + + # Calculate timeout for preload process + process_timeout = calculate_process_timeout(preload_command_str, timeout_buffer) + + # Run with timeout + success, client_container_stdout, stderr = run_local_command_with_timeout( + preload_command_str, + process_timeout, + "memtier preload" ) - stream = os.popen(preload_command_str) - client_container_stdout = stream.read() + + if not success: + logging.error(f"Memtier preload failed: {stderr}") + result = False + return result move_command = "mv {} {}".format( local_benchmark_output_filename, temporary_dir diff --git a/redis_benchmarks_specification/test-suites/defaults.yml b/redis_benchmarks_specification/test-suites/defaults.yml index 26e21dd2..b2cf8ce7 100644 --- a/redis_benchmarks_specification/test-suites/defaults.yml +++ b/redis_benchmarks_specification/test-suites/defaults.yml @@ -27,3 +27,6 @@ exporter: - $."ALL STATS".Totals."Percentile Latencies"."p50.00" - $."ALL STATS".Totals."Percentile Latencies"."p99.00" - $."MessageRate" + - $."precision_summary".*.qps + - $."precision_summary".*.p50 + - $."precision_summary".*.p95 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index 71d71e29..f7277205 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -6,6 +6,10 @@ dbconfig: save: '""' check: keyspacelen: 10000000 + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "4" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "10000000" "-n" "allkeys"' resources: requests: memory: 10g diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10.yml deleted file mode 100644 index 99426530..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: 0.4 -name: memtier_benchmark-10Mkeys-string-set-update-del-ex-36000-pipeline-10 -description: Multi-step test - SET EX 36000 (10 hours), then update same keys with SET EX 36000, then DEL. Tests command throughput with long TTL without active expiration. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 5g -tested-commands: -- set -- del -tested-groups: -- string -- generic -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 36000" --command "SET __key__ BBB EX 36000" --command "DEL __key__" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 10000000 -n allkeys' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10.yml deleted file mode 100644 index 3366104d..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 0.4 -name: memtier_benchmark-150Mkeys-string-set-ex-20-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 150M keys with SET EX 20 commands and pipeline 10. Tests medium TTL expiration performance. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 20g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 20" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 150000000 -n allkeys' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml index 32679cc3..0918d16d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g @@ -30,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml index b292168f..58788eb0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g @@ -30,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml index 5f935955..1b8f91b9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g @@ -25,7 +25,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "PSETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120' + arguments: '"--data-size" "10" --command "PSETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml index 4852b9b4..6b08c5f9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g @@ -25,7 +25,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120' + arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml index 5cdce219..daa5545a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 2g @@ -30,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "1000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml index 0badc645..db671c41 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 3g @@ -30,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "4000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "4000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120' resources: requests: cpus: '3' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index 40496942..78dab447 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -6,6 +6,10 @@ dbconfig: save: '""' check: keyspacelen: 1000000 + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' resources: requests: memory: 1g diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml index ade70d96..848cafe2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml @@ -4,10 +4,12 @@ description: Runs memtier_benchmark, for a keyspace of 1M keys with 400 clients dbconfig: configuration-parameters: save: '""' + check: + keyspacelen: 1000000 preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--pipeline 100 --data-size 240 --command "SET __key__ __data__ EX 5" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1' + arguments: '--pipeline 100 --data-size 240 --command "SET __key__ __data__ EX 5" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000' resources: requests: memory: 1g @@ -27,7 +29,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 240 --command "SET __key__ __data__ EX 5" --command "GET __key__" -c 50 -t 8 --hide-histogram --test-time 120 + arguments: --data-size 240 --command "SET __key__ __data__ EX 5" --command "GET __key__" -c 50 -t 8 --hide-histogram --test-time 120 --key-maximum 1000000 --key-minimum 1 resources: requests: cpus: '8' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml index 17190406..0190587f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml @@ -9,7 +9,7 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml index 2e36030d..d92bcb68 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml @@ -4,8 +4,6 @@ description: Runs memtier_benchmark, for a keyspace length of 3M keys loading ST dbconfig: configuration-parameters: save: '""' - check: - keyspacelen: 3000000 preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10-with-precondition-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10-with-precondition-pipeline-10.yml deleted file mode 100644 index f4091a25..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10-with-precondition-pipeline-10.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: 0.4 -name: memtier_benchmark-50Mkeys-string-set-ex-10-with-precondition-pipeline-10 -description: Multi-step test - Precondition SET EX 10000 for 50M keys, then SET EX 10 for another 50M keys with different prefix. Tests expiration performance with existing long-TTL keys. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 50000000 - preload_tool: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 10000" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys --key-prefix=1' - resources: - requests: - memory: 10g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 10" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys --key-prefix=2' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10years-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10years-pipeline-10.yml deleted file mode 100644 index b6e17ba0..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-10years-pipeline-10.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 0.4 -name: memtier_benchmark-50Mkeys-string-set-ex-10years-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 50M keys with SET EX 311040000 (10 years) commands and pipeline 10. Tests very long TTL performance. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 10g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 311040000" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-3-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-3-pipeline-10.yml deleted file mode 100644 index f0decfba..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-3-pipeline-10.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 0.4 -name: memtier_benchmark-50Mkeys-string-set-ex-3-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 50M keys with SET EX 3 commands and pipeline 10. Tests short TTL expiration performance. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 10g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 3" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys --key-prefix=1' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-random-range-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-random-range-pipeline-10.yml deleted file mode 100644 index 59e72b95..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-ex-random-range-pipeline-10.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 0.4 -name: memtier_benchmark-50Mkeys-string-set-ex-random-range-pipeline-10 -description: Runs memtier_benchmark with SET EX using random TTL range from 20 seconds to 30 days. Worst-case test for ebuckets with wide TTL distribution. Note - requires memtier_benchmark modification to support __data__ placeholder for EX values. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 10g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX __data__" -c 50 -t 4 --data-size-range=20-2592000 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys --key-prefix=1' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-update-del-ex-120-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-update-del-ex-120-pipeline-10.yml deleted file mode 100644 index 4b104033..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-50Mkeys-string-set-update-del-ex-120-pipeline-10.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: 0.4 -name: memtier_benchmark-50Mkeys-string-set-update-del-ex-120-pipeline-10 -description: Multi-step test - SET EX 120, then update same keys with SET EX 120, then DEL. Tests command throughput without active expiration (120s TTL prevents expiration during test). -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 0 - resources: - requests: - memory: 10g -tested-commands: -- set -- del -tested-groups: -- string -- generic -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ BBB EX 120" --command "SET __key__ BBB EX 120" --command "DEL __key__" -c 50 -t 4 --command-key-pattern=P --pipeline 10 --hide-histogram --key-maximum 50000000 -n allkeys' - resources: - requests: - cpus: '4' - memory: 2g - -priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-80Mkeys-string-set-ex-20-precodition-multiclient-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-80Mkeys-string-set-ex-20-precodition-multiclient-pipeline-10.yml deleted file mode 100644 index fedbeead..00000000 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-80Mkeys-string-set-ex-20-precodition-multiclient-pipeline-10.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: 0.4 -name: memtier_benchmark-80Mkeys-string-set-ex-20-precodition-multiclient-pipeline-10 -description: Multi-step AWS test - Precondition SET EX 10000 for 20M keys, then SET EX 20 for 80M keys with 4 clients and 2 threads. Tests multi-client expiration performance. -dbconfig: - configuration-parameters: - save: '""' - check: - keyspacelen: 20000000 - preload_tool: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ XXX EX 10000" --command-key-pattern=P -c 50 -t 4 --pipeline 10 --hide-histogram --key-maximum 20000000 -n allkeys --key-prefix=1' - resources: - requests: - memory: 15g -tested-commands: -- set -tested-groups: -- string -redis-topologies: -- oss-standalone -build-variants: -- gcc:8.5.0-amd64-debian-buster-default -- dockerhub -clientconfig: - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: '--command "SET __key__ XXX EX 20" --command-key-pattern=P -c 4 -t 2 --pipeline 10 --hide-histogram --key-maximum 80000000 -n allkeys --key-prefix=2' - resources: - requests: - cpus: '4' - memory: 4g - -priority: 1 diff --git a/utils/tests/test_runner.py b/utils/tests/test_runner.py index 7f66d7cc..7c6d5ad8 100644 --- a/utils/tests/test_runner.py +++ b/utils/tests/test_runner.py @@ -987,18 +987,40 @@ def test_prepare_pubsub_sub_bench_parameters_override_test_time(): assert "-verbose" in benchmark_command_str -def test_create_client_runner_args_container_timeout_buffer(): - """Test that container timeout buffer argument is properly configured""" +def test_create_client_runner_args_timeout_buffer(): + """Test that timeout buffer argument is properly configured""" from redis_benchmarks_specification.__runner__.args import create_client_runner_args - # Test default value + # Test default value for new argument parser = create_client_runner_args("test") args = parser.parse_args([]) - assert args.container_timeout_buffer == 60 # Default should be 60 seconds + assert args.timeout_buffer == 60 # Default should be 60 seconds - # Test custom value - args = parser.parse_args(["--container-timeout-buffer", "120"]) - assert args.container_timeout_buffer == 120 + # Test custom value for new argument + args = parser.parse_args(["--timeout-buffer", "120"]) + assert args.timeout_buffer == 120 + + # Test backward compatibility with old argument + args = parser.parse_args(["--container-timeout-buffer", "90"]) + assert args.container_timeout_buffer == 90 + + +def test_run_local_command_with_timeout(): + """Test the local command timeout functionality""" + from redis_benchmarks_specification.__runner__.runner import run_local_command_with_timeout, calculate_process_timeout + + # Test successful command + success, stdout, stderr = run_local_command_with_timeout("echo 'test'", 5, "test command") + assert success is True + assert "test" in stdout + + # Test timeout calculation + timeout = calculate_process_timeout("memtier_benchmark --test-time 60", 30) + assert timeout == 90 # 60 + 30 + + # Test default timeout + timeout = calculate_process_timeout("memtier_benchmark", 30) + assert timeout == 300 # default 5 minutes def test_run_client_runner_logic(): From d5c26217fbbcd44b045a6b6a2286b70bdead76f0 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 15 Jul 2025 18:47:43 +0100 Subject: [PATCH 02/16] Added benchmark, sha, and version metadata to the profile --- pyproject.toml | 2 +- .../__runner__/remote_profiling.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 24829c28..9b97bf6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.275" +version = "0.1.277" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__runner__/remote_profiling.py b/redis_benchmarks_specification/__runner__/remote_profiling.py index 10c4f1a4..fdbbb36d 100644 --- a/redis_benchmarks_specification/__runner__/remote_profiling.py +++ b/redis_benchmarks_specification/__runner__/remote_profiling.py @@ -192,9 +192,10 @@ def save_profile_with_metadata( f"# profile from redis sha = {redis_metadata['redis_git_sha1']} " f"and pid {redis_metadata['process_id']} for duration of {duration}s. " f"collection in date {timestamp}\n" - f"# redis_version: {redis_metadata['redis_version']}\n" - f"# redis_git_dirty: {redis_metadata['redis_git_dirty']}\n" - f"# tcp_port: {redis_metadata['tcp_port']}\n" + f"# benchmark_name={benchmark_name}\n" + f"# redis_git_sha1={redis_metadata['redis_git_sha1']}\n" + f"# redis_version={redis_metadata['redis_version']}\n" + f"# redis_git_dirty={redis_metadata['redis_git_dirty']}\n" ) # Write file with metadata and profile content From af9cc72ca9ccb2b6365db59b89ba4a8daa8aca2d Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 15 Jul 2025 23:19:36 +0100 Subject: [PATCH 03/16] Removed extra imports --- redis_benchmarks_specification/__runner__/runner.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index e7f74ac3..719558ec 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -349,8 +349,6 @@ def run_multiple_clients( ) # Start container (detached) - import os - # Set working directory based on tool working_dir = benchmark_tool_workdir if "vector-db-benchmark" in client_tool: @@ -483,8 +481,6 @@ def run_multiple_clients( if successful_results: # Try to read and aggregate JSON output files - import json - import os aggregated_json = {} memtier_json = None @@ -1647,8 +1643,6 @@ def delete_temporary_files( ) # Use explicit container management for single client - import os - # Set working directory based on tool working_dir = benchmark_tool_workdir if "vector-db-benchmark" in benchmark_tool: @@ -1821,7 +1815,6 @@ def delete_temporary_files( ) elif "vector-db-benchmark" in benchmark_tool: # For vector-db-benchmark, look for summary JSON file - import os summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")] if summary_files: full_result_path = os.path.join(temporary_dir_client, summary_files[0]) From edf732990a83cd927707818f3be5a2f94f256405 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 25 Jul 2025 16:12:27 +0100 Subject: [PATCH 04/16] Extending the compare and runner tools --- pyproject.toml | 2 +- .../__compare__/args.py | 24 ++ .../__compare__/compare.py | 212 +++++++++++++----- .../__runner__/args.py | 12 +- .../__runner__/remote_profiling.py | 76 ++++--- .../__runner__/runner.py | 45 +++- utils/tests/test_runner.py | 118 ++++++++++ 7 files changed, 387 insertions(+), 102 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9b97bf6b..0d00fcb6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.277" +version = "0.1.281" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__compare__/args.py b/redis_benchmarks_specification/__compare__/args.py index fc5ace11..d628bc30 100644 --- a/redis_benchmarks_specification/__compare__/args.py +++ b/redis_benchmarks_specification/__compare__/args.py @@ -57,6 +57,18 @@ def create_compare_arguments(parser): parser.add_argument("--baseline_github_org", type=str, default="") parser.add_argument("--comparison_github_org", type=str, default="") parser.add_argument("--triggering_env", type=str, default="ci") + parser.add_argument( + "--triggering_env_baseline", + type=str, + default=None, + help="Triggering environment for baseline data. If not specified, falls back to --triggering_env" + ) + parser.add_argument( + "--triggering_env_comparison", + type=str, + default=None, + help="Triggering environment for comparison data. If not specified, falls back to --triggering_env" + ) parser.add_argument("--github_token", type=str, default=PERFORMANCE_GH_TOKEN) parser.add_argument("--pull-request", type=str, default=None, nargs="?", const="") parser.add_argument("--deployment_name", type=str, default="oss-standalone") @@ -67,6 +79,18 @@ def create_compare_arguments(parser): parser.add_argument( "--running_platform", type=str, default="intel64-ubuntu22.04-redis-icx1" ) + parser.add_argument( + "--running_platform_baseline", + type=str, + default=None, + help="Platform for baseline data. If not specified, falls back to --running_platform" + ) + parser.add_argument( + "--running_platform_comparison", + type=str, + default=None, + help="Platform for comparison data. If not specified, falls back to --running_platform" + ) parser.add_argument("--extra-filter", type=str, default=None) parser.add_argument( "--last_n", diff --git a/redis_benchmarks_specification/__compare__/compare.py b/redis_benchmarks_specification/__compare__/compare.py index 7c4d16fd..14650a37 100644 --- a/redis_benchmarks_specification/__compare__/compare.py +++ b/redis_benchmarks_specification/__compare__/compare.py @@ -251,6 +251,14 @@ def compare_command_logic(args, project_name, project_version): testname_regex = args.testname_regex auto_approve = args.auto_approve running_platform = args.running_platform + + # Handle separate baseline and comparison platform/environment arguments + # Fall back to general arguments if specific ones are not provided + running_platform_baseline = args.running_platform_baseline or args.running_platform + running_platform_comparison = args.running_platform_comparison or args.running_platform + triggering_env_baseline = args.triggering_env_baseline or args.triggering_env + triggering_env_comparison = args.triggering_env_comparison or args.triggering_env + baseline_target_version = args.baseline_target_version comparison_target_version = args.comparison_target_version baseline_target_branch = args.baseline_target_branch @@ -262,10 +270,31 @@ def compare_command_logic(args, project_name, project_version): baseline_hash = args.baseline_hash comparison_hash = args.comparison_hash - if running_platform is not None: + # Log platform and environment information + if running_platform_baseline == running_platform_comparison: + if running_platform_baseline is not None: + logging.info( + "Using platform named: {} for both baseline and comparison.\n\n".format( + running_platform_baseline + ) + ) + else: + logging.info( + "Using platform named: {} for baseline and {} for comparison.\n\n".format( + running_platform_baseline, running_platform_comparison + ) + ) + + if triggering_env_baseline == triggering_env_comparison: + logging.info( + "Using triggering environment: {} for both baseline and comparison.".format( + triggering_env_baseline + ) + ) + else: logging.info( - "Using platform named: {} to do the comparison.\n\n".format( - running_platform + "Using triggering environment: {} for baseline and {} for comparison.".format( + triggering_env_baseline, triggering_env_comparison ) ) @@ -328,7 +357,8 @@ def compare_command_logic(args, project_name, project_version): rts, tf_github_org, tf_github_repo, - tf_triggering_env, + triggering_env_baseline, + triggering_env_comparison, metric_name, comparison_branch, baseline_branch, @@ -352,7 +382,8 @@ def compare_command_logic(args, project_name, project_version): to_date, to_ts_ms, use_metric_context_path, - running_platform, + running_platform_baseline, + running_platform_comparison, baseline_target_version, comparison_target_version, baseline_hash, @@ -383,11 +414,13 @@ def compare_command_logic(args, project_name, project_version): pr_link, regression_comment, rts, - running_platform, + running_platform_baseline, + running_platform_comparison, table_output, tf_github_org, tf_github_repo, - tf_triggering_env, + triggering_env_baseline, + triggering_env_comparison, total_comparison_points, total_improvements, total_regressions, @@ -423,11 +456,13 @@ def prepare_regression_comment( pr_link, regression_comment, rts, - running_platform, + running_platform_baseline, + running_platform_comparison, table_output, tf_github_org, tf_github_repo, - tf_triggering_env, + triggering_env_baseline, + triggering_env_comparison, total_comparison_points, total_improvements, total_regressions, @@ -441,9 +476,25 @@ def prepare_regression_comment( if total_comparison_points > 0: comment_body = "### Automated performance analysis summary\n\n" comment_body += "This comment was automatically generated given there is performance data available.\n\n" - if running_platform is not None: - comment_body += "Using platform named: {} to do the comparison.\n\n".format( - running_platform + # Add platform information to comment + if running_platform_baseline == running_platform_comparison: + if running_platform_baseline is not None: + comment_body += "Using platform named: {} for both baseline and comparison.\n\n".format( + running_platform_baseline + ) + else: + comment_body += "Using platform named: {} for baseline and {} for comparison.\n\n".format( + running_platform_baseline, running_platform_comparison + ) + + # Add triggering environment information to comment + if triggering_env_baseline == triggering_env_comparison: + comment_body += "Using triggering environment: {} for both baseline and comparison.\n\n".format( + triggering_env_baseline + ) + else: + comment_body += "Using triggering environment: {} for baseline and {} for comparison.\n\n".format( + triggering_env_baseline, triggering_env_comparison ) comparison_summary = "In summary:\n" if total_stable > 0: @@ -507,7 +558,7 @@ def prepare_regression_comment( if is_actionable_pr: zset_project_pull_request = get_project_compare_zsets( - tf_triggering_env, + triggering_env_baseline, tf_github_org, tf_github_repo, ) @@ -516,16 +567,22 @@ def prepare_regression_comment( zset_project_pull_request, comparison_branch ) ) - _, start_time_ms, _ = get_start_time_vars() - res = rts.zadd( - zset_project_pull_request, - {comparison_branch: start_time_ms}, - ) - logging.info( - "Result of Populating the pull request performance ZSETs: {} with branch {}: {}".format( - zset_project_pull_request, comparison_branch, res + # Only add to Redis sorted set if comparison_branch is not None + if comparison_branch is not None: + _, start_time_ms, _ = get_start_time_vars() + res = rts.zadd( + zset_project_pull_request, + {comparison_branch: start_time_ms}, + ) + logging.info( + "Result of Populating the pull request performance ZSETs: {} with branch {}: {}".format( + zset_project_pull_request, comparison_branch, res + ) + ) + else: + logging.warning( + "Skipping Redis ZADD operation because comparison_branch is None" ) - ) if contains_regression_comment: update_comment_if_needed( @@ -587,7 +644,8 @@ def compute_regression_table( rts, tf_github_org, tf_github_repo, - tf_triggering_env, + tf_triggering_env_baseline, + tf_triggering_env_comparison, metric_name, comparison_branch, baseline_branch="unstable", @@ -611,7 +669,8 @@ def compute_regression_table( to_date=None, to_ts_ms=None, use_metric_context_path=None, - running_platform=None, + running_platform_baseline=None, + running_platform_comparison=None, baseline_target_version=None, comparison_target_version=None, comparison_hash=None, @@ -672,7 +731,7 @@ def compute_regression_table( _, _, _, - ) = get_overall_dashboard_keynames(tf_github_org, tf_github_repo, tf_triggering_env) + ) = get_overall_dashboard_keynames(tf_github_org, tf_github_repo, tf_triggering_env_baseline) test_names = [] used_key = testcases_setname test_filter = "test_name" @@ -728,9 +787,11 @@ def compute_regression_table( simplify_table, test_filter, test_names, - tf_triggering_env, + tf_triggering_env_baseline, + tf_triggering_env_comparison, verbose, - running_platform, + running_platform_baseline, + running_platform_comparison, baseline_github_repo, comparison_github_repo, baseline_github_org, @@ -1047,9 +1108,11 @@ def from_rts_to_regression_table( simplify_table, test_filter, test_names, - tf_triggering_env, + tf_triggering_env_baseline, + tf_triggering_env_comparison, verbose, - running_platform=None, + running_platform_baseline=None, + running_platform_comparison=None, baseline_github_repo="redis", comparison_github_repo="redis", baseline_github_org="redis", @@ -1109,19 +1172,19 @@ def from_rts_to_regression_table( "{}={}".format(test_filter, test_name), "deployment_name={}".format(baseline_deployment_name), "github_repo={}".format(baseline_github_repo), - "triggering_env={}".format(tf_triggering_env), + "triggering_env={}".format(tf_triggering_env_baseline), ] if baseline_github_org != "": filters_baseline.append(f"github_org={baseline_github_org}") - if running_platform is not None: - filters_baseline.append("running_platform={}".format(running_platform)) + if running_platform_baseline is not None: + filters_baseline.append("running_platform={}".format(running_platform_baseline)) filters_comparison = [ "{}={}".format(by_str_comparison, comparison_str), "metric={}".format(metric_name), "{}={}".format(test_filter, test_name), "deployment_name={}".format(comparison_deployment_name), "github_repo={}".format(comparison_github_repo), - "triggering_env={}".format(tf_triggering_env), + "triggering_env={}".format(tf_triggering_env_comparison), ] if comparison_github_org != "": filters_comparison.append(f"github_org={comparison_github_org}") @@ -1129,8 +1192,8 @@ def from_rts_to_regression_table( filters_baseline.append("hash==") if "hash" not in by_str_comparison: filters_comparison.append("hash==") - if running_platform is not None: - filters_comparison.append("running_platform={}".format(running_platform)) + if running_platform_comparison is not None: + filters_comparison.append("running_platform={}".format(running_platform_comparison)) baseline_timeseries = rts.ts().queryindex(filters_baseline) comparison_timeseries = rts.ts().queryindex(filters_comparison) @@ -1302,30 +1365,61 @@ def from_rts_to_regression_table( if baseline_v != "N/A" or comparison_v != "N/A": detected_regression = False detected_improvement = False - if percentage_change < 0.0: - if -waterline >= percentage_change: - detected_regression = True - total_regressions = total_regressions + 1 - note = note + f" {regression_str}" - detected_regressions.append(test_name) - elif percentage_change < -noise_waterline: - if simplify_table is False: - note = note + f" potential {regression_str}" - else: - if simplify_table is False: - note = note + " No Change" - - if percentage_change > 0.0: - if percentage_change > waterline: - detected_improvement = True - total_improvements = total_improvements + 1 - note = note + f" {improvement_str}" - elif percentage_change > noise_waterline: - if simplify_table is False: - note = note + f" potential {improvement_str}" - else: - if simplify_table is False: - note = note + " No Change" + + # For higher-better metrics: negative change = regression, positive change = improvement + # For lower-better metrics: positive change = regression, negative change = improvement + if metric_mode == "higher-better": + # Higher is better: negative change is bad (regression), positive change is good (improvement) + if percentage_change < 0.0: + if -waterline >= percentage_change: + detected_regression = True + total_regressions = total_regressions + 1 + note = note + f" {regression_str}" + detected_regressions.append(test_name) + elif percentage_change < -noise_waterline: + if simplify_table is False: + note = note + f" potential {regression_str}" + else: + if simplify_table is False: + note = note + " No Change" + + if percentage_change > 0.0: + if percentage_change > waterline: + detected_improvement = True + total_improvements = total_improvements + 1 + note = note + f" {improvement_str}" + elif percentage_change > noise_waterline: + if simplify_table is False: + note = note + f" potential {improvement_str}" + else: + if simplify_table is False: + note = note + " No Change" + else: + # Lower is better: positive change is bad (regression), negative change is good (improvement) + if percentage_change > 0.0: + if percentage_change >= waterline: + detected_regression = True + total_regressions = total_regressions + 1 + note = note + f" {regression_str}" + detected_regressions.append(test_name) + elif percentage_change > noise_waterline: + if simplify_table is False: + note = note + f" potential {regression_str}" + else: + if simplify_table is False: + note = note + " No Change" + + if percentage_change < 0.0: + if -percentage_change > waterline: + detected_improvement = True + total_improvements = total_improvements + 1 + note = note + f" {improvement_str}" + elif -percentage_change > noise_waterline: + if simplify_table is False: + note = note + f" potential {improvement_str}" + else: + if simplify_table is False: + note = note + " No Change" for test_group in tested_groups: if test_group not in group_change: diff --git a/redis_benchmarks_specification/__runner__/args.py b/redis_benchmarks_specification/__runner__/args.py index 6f041d95..c9e5d295 100644 --- a/redis_benchmarks_specification/__runner__/args.py +++ b/redis_benchmarks_specification/__runner__/args.py @@ -202,6 +202,12 @@ def create_client_runner_args(project_name): action="store_true", help="Assume benchmarking tool (e.g. memtier benchmark) is installed locally and execute it without using a docker container.", ) + parser.add_argument( + "--memtier-bin-path", + type=str, + default="memtier_benchmark", + help="Path to memtier_benchmark binary when using --benchmark_local_install. Default is 'memtier_benchmark' (assumes it's in PATH).", + ) parser.add_argument( "--override-test-runs", default=1, @@ -235,7 +241,7 @@ def create_client_runner_args(project_name): "--enable-remote-profiling", default=False, action="store_true", - help="Enable remote profiling of Redis processes via HTTP GET endpoint. Profiles are collected in folded format during benchmark execution.", + help="Enable remote profiling of Redis processes via HTTP GET endpoint. Profiles are collected in pprof binary format during benchmark execution.", ) parser.add_argument( "--remote-profile-host", @@ -246,8 +252,8 @@ def create_client_runner_args(project_name): parser.add_argument( "--remote-profile-port", type=int, - default=8080, - help="Port for remote profiling HTTP endpoint. Default is 8080.", + default=10000, + help="Port for remote profiling HTTP endpoint. Default is 10000.", ) parser.add_argument( "--remote-profile-output-dir", diff --git a/redis_benchmarks_specification/__runner__/remote_profiling.py b/redis_benchmarks_specification/__runner__/remote_profiling.py index fdbbb36d..23c97628 100644 --- a/redis_benchmarks_specification/__runner__/remote_profiling.py +++ b/redis_benchmarks_specification/__runner__/remote_profiling.py @@ -3,7 +3,7 @@ This module provides functionality to trigger remote profiling of Redis processes via HTTP GET endpoints during benchmark execution. Profiles are collected in -folded format for performance analysis. +pprof binary format for performance analysis. """ import datetime @@ -103,9 +103,9 @@ def trigger_remote_profile( timeout: int = 60, username: Optional[str] = None, password: Optional[str] = None -) -> Optional[str]: +) -> Optional[bytes]: """ - Trigger remote profiling via HTTP GET request. + Trigger remote profiling via HTTP GET request using pprof endpoint. Args: host: Remote host address @@ -117,9 +117,9 @@ def trigger_remote_profile( password: Optional password for HTTP basic authentication Returns: - Profile content in folded format, or None if failed + Profile content in pprof binary format, or None if failed """ - url = f"http://{host}:{port}/debug/folded/profile" + url = f"http://{host}:{port}/debug/pprof/profile" params = { "pid": pid, "seconds": duration @@ -136,8 +136,8 @@ def trigger_remote_profile( response = requests.get(url, params=params, timeout=timeout, auth=auth) response.raise_for_status() - profile_content = response.text - logging.info(f"Successfully collected profile: {len(profile_content)} characters") + profile_content = response.content + logging.info(f"Successfully collected profile: {len(profile_content)} bytes") return profile_content except requests.exceptions.Timeout: @@ -157,55 +157,65 @@ def trigger_remote_profile( def save_profile_with_metadata( - profile_content: str, + profile_content: bytes, benchmark_name: str, output_dir: str, redis_metadata: Dict[str, Any], duration: int ) -> Optional[str]: """ - Save profile content to file with metadata comments. - + Save profile content to file in pprof binary format. + Args: - profile_content: Profile data in folded format + profile_content: Profile data in pprof binary format benchmark_name: Name of the benchmark output_dir: Output directory path redis_metadata: Redis metadata dictionary duration: Profiling duration in seconds - + Returns: Path to saved file, or None if failed """ try: # Create output directory if it doesn't exist Path(output_dir).mkdir(parents=True, exist_ok=True) - - # Generate filename - filename = f"{benchmark_name}.folded" + + # Generate filename with .pb.gz extension + filename = f"{benchmark_name}.pb.gz" filepath = os.path.join(output_dir, filename) - + # Generate timestamp timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - - # Create metadata comment - metadata_comment = ( - f"# profile from redis sha = {redis_metadata['redis_git_sha1']} " + + # Write binary profile content directly + with open(filepath, 'wb') as f: + f.write(profile_content) + + # Create a separate metadata file + metadata_filename = f"{benchmark_name}.metadata.txt" + metadata_filepath = os.path.join(output_dir, metadata_filename) + + metadata_content = ( + f"Profile from redis sha = {redis_metadata['redis_git_sha1']} " f"and pid {redis_metadata['process_id']} for duration of {duration}s. " - f"collection in date {timestamp}\n" - f"# benchmark_name={benchmark_name}\n" - f"# redis_git_sha1={redis_metadata['redis_git_sha1']}\n" - f"# redis_version={redis_metadata['redis_version']}\n" - f"# redis_git_dirty={redis_metadata['redis_git_dirty']}\n" + f"Collection date: {timestamp}\n" + f"benchmark_name={benchmark_name}\n" + f"redis_git_sha1={redis_metadata['redis_git_sha1']}\n" + f"redis_version={redis_metadata['redis_version']}\n" + f"redis_git_dirty={redis_metadata['redis_git_dirty']}\n" + f"redis_build_id={redis_metadata['redis_build_id']}\n" + f"process_id={redis_metadata['process_id']}\n" + f"tcp_port={redis_metadata['tcp_port']}\n" + f"duration_seconds={duration}\n" ) - - # Write file with metadata and profile content - with open(filepath, 'w') as f: - f.write(metadata_comment) - f.write(profile_content) - + + with open(metadata_filepath, 'w') as f: + f.write(metadata_content) + logging.info(f"Saved profile to: {filepath}") + logging.info(f"Saved metadata to: {metadata_filepath}") return filepath - + except Exception as e: logging.error(f"Failed to save profile file: {e}") return None @@ -281,7 +291,7 @@ def _profile_worker(self, pid: int, duration: int, benchmark_name: str, redis_me username=self.username, password=self.password ) - if profile_content: + if profile_content is not None: # Save profile with metadata filepath = save_profile_with_metadata( profile_content, benchmark_name, self.output_dir, redis_metadata, duration diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index 719558ec..adeff6b1 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -240,13 +240,19 @@ def run_multiple_clients( # Prepare benchmark command for this client if "memtier_benchmark" in client_tool: + # Set benchmark path based on local install option + if args.benchmark_local_install: + full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + else: + full_benchmark_path = f"/usr/local/bin/{client_tool}" + ( _, benchmark_command_str, arbitrary_command, ) = prepare_memtier_benchmark_parameters( client_config, - client_tool, + full_benchmark_path, port, host, password, @@ -1202,7 +1208,9 @@ def delete_temporary_files( else: for conn in redis_conns: maxmemory = maxmemory + get_maxmemory(conn) - if benchmark_required_memory > maxmemory: + + # Only perform memory check if we have valid maxmemory information + if maxmemory > 0 and benchmark_required_memory > maxmemory: logging.warning( "Skipping test {} given maxmemory of server is bellow the benchmark required memory: {} < {}".format( test_name, maxmemory, benchmark_required_memory @@ -1214,6 +1222,12 @@ def delete_temporary_files( benchmark_tool_global=benchmark_tool_global, ) continue + elif maxmemory == 0 and benchmark_required_memory > 0: + logging.warning( + "Cannot enforce memory checks for test {} - maxmemory information unavailable. Proceeding with test.".format( + test_name + ) + ) reset_commandstats(redis_conns) @@ -1337,6 +1351,7 @@ def delete_temporary_files( oss_cluster_api_enabled, unix_socket, buffer_timeout, + args, ) if res is False: logging.warning( @@ -1380,7 +1395,12 @@ def delete_temporary_files( # backwards compatible if benchmark_tool is None: benchmark_tool = "redis-benchmark" - full_benchmark_path = f"/usr/local/bin/{benchmark_tool}" + + # Set benchmark path based on local install option + if args.benchmark_local_install and "memtier_benchmark" in benchmark_tool: + full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + else: + full_benchmark_path = f"/usr/local/bin/{benchmark_tool}" # setup the benchmark ( @@ -1966,9 +1986,16 @@ def delete_temporary_files( def get_maxmemory(r): - maxmemory = int(r.info("memory")["maxmemory"]) + memory_info = r.info("memory") + + # Check if maxmemory key exists in Redis memory info + if "maxmemory" not in memory_info: + logging.warning("maxmemory not present in Redis memory info. Cannot enforce memory checks.") + return 0 + + maxmemory = int(memory_info["maxmemory"]) if maxmemory == 0: - total_system_memory = int(r.info("memory")["total_system_memory"]) + total_system_memory = int(memory_info["total_system_memory"]) logging.info(" Using total system memory as max {}".format(total_system_memory)) maxmemory = total_system_memory else: @@ -2268,6 +2295,7 @@ def data_prepopulation_step( oss_cluster_api_enabled=False, unix_socket="", timeout_buffer=60, + args=None, ): result = True # setup the benchmark @@ -2286,7 +2314,12 @@ def data_prepopulation_step( benchmark_config["dbconfig"], "preload_tool" ) preload_tool = extract_client_tool(benchmark_config["dbconfig"], "preload_tool") - full_benchmark_path = f"/usr/local/bin/{preload_tool}" + + # Set preload tool path based on local install option + if benchmark_local_install and "memtier_benchmark" in preload_tool and args: + full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + else: + full_benchmark_path = f"/usr/local/bin/{preload_tool}" client_mnt_point = "/mnt/client/" if "memtier_benchmark" in preload_tool: diff --git a/utils/tests/test_runner.py b/utils/tests/test_runner.py index 7c6d5ad8..65cee87e 100644 --- a/utils/tests/test_runner.py +++ b/utils/tests/test_runner.py @@ -548,6 +548,27 @@ def test_create_client_runner_args(): assert args.flushall_on_every_test_start is True assert args.benchmark_local_install is True + # Test parsing with memtier bin path + args = parser.parse_args( + [ + "--test", + "test.yml", + "--db_server_host", + "localhost", + "--db_server_port", + "6379", + "--benchmark_local_install", + "--memtier-bin-path", + "/custom/path/to/memtier_benchmark", + ] + ) + + assert args.benchmark_local_install is True + assert getattr(args, 'memtier_bin_path') == "/custom/path/to/memtier_benchmark" + + assert args.flushall_on_every_test_start is True + assert args.benchmark_local_install is True + def test_extract_client_container_image_legacy(): """Test the legacy extract_client_container_image function""" @@ -1023,6 +1044,103 @@ def test_run_local_command_with_timeout(): assert timeout == 300 # default 5 minutes +def test_get_maxmemory(): + """Test the get_maxmemory function with different Redis memory info scenarios""" + from redis_benchmarks_specification.__runner__.runner import get_maxmemory + + class MockRedisConnection: + def __init__(self, memory_info): + self.memory_info = memory_info + + def info(self, section): + if section == "memory": + return self.memory_info + return {} + + # Test case 1: maxmemory key is missing (should return 0 and warn) + mock_redis_no_maxmemory = MockRedisConnection({ + "used_memory": 1024000, + "total_system_memory": 8589934592 + }) + result = get_maxmemory(mock_redis_no_maxmemory) + assert result == 0 + + # Test case 2: maxmemory is 0 (should use total_system_memory) + mock_redis_maxmemory_zero = MockRedisConnection({ + "maxmemory": 0, + "used_memory": 1024000, + "total_system_memory": 8589934592 + }) + result = get_maxmemory(mock_redis_maxmemory_zero) + assert result == 8589934592 + + # Test case 3: maxmemory has a value (should return that value) + mock_redis_maxmemory_set = MockRedisConnection({ + "maxmemory": 4294967296, # 4GB + "used_memory": 1024000, + "total_system_memory": 8589934592 + }) + result = get_maxmemory(mock_redis_maxmemory_set) + assert result == 4294967296 + + +def test_remote_profiling_pprof_format(): + """Test the remote profiling functionality with pprof format""" + from redis_benchmarks_specification.__runner__.remote_profiling import ( + save_profile_with_metadata, + extract_redis_metadata, + calculate_profile_duration + ) + import tempfile + import os + + # Test save_profile_with_metadata with binary data + with tempfile.TemporaryDirectory() as temp_dir: + # Mock binary profile data + profile_data = b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff' # Sample gzipped data + benchmark_name = "test-benchmark" + redis_metadata = { + "redis_version": "7.0.0", + "redis_git_sha1": "abc123", + "redis_git_dirty": "0", + "redis_build_id": "build123", + "process_id": "12345", + "tcp_port": "6379" + } + duration = 10 + + # Save profile + result_path = save_profile_with_metadata( + profile_data, benchmark_name, temp_dir, redis_metadata, duration + ) + + # Verify files were created + assert result_path is not None + assert os.path.exists(result_path) + assert result_path.endswith(".pb.gz") + + # Verify metadata file was created + metadata_path = os.path.join(temp_dir, f"{benchmark_name}.metadata.txt") + assert os.path.exists(metadata_path) + + # Verify binary data was written correctly + with open(result_path, 'rb') as f: + saved_data = f.read() + assert saved_data == profile_data + + # Verify metadata content + with open(metadata_path, 'r') as f: + metadata_content = f.read() + assert "redis_git_sha1=abc123" in metadata_content + assert "benchmark_name=test-benchmark" in metadata_content + assert "duration_seconds=10" in metadata_content + + # Test calculate_profile_duration + assert calculate_profile_duration(5) == 10 # minimum 10 seconds + assert calculate_profile_duration(15) == 15 # use benchmark duration + assert calculate_profile_duration(45) == 30 # maximum 30 seconds + + def test_run_client_runner_logic(): project_name = "tool" project_version = "v0" From f0cb2fc7f94606064f4e9c00def418c11c86c68d Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Mon, 4 Aug 2025 18:32:52 +0100 Subject: [PATCH 05/16] wip --- pyproject.toml | 2 +- .../__common__/runner.py | 17 + .../__common__/timeseries.py | 17 +- .../__compare__/args.py | 8 +- .../__compare__/compare.py | 28 +- .../__runner__/args.py | 36 ++ .../__runner__/remote_profiling.py | 293 +++++++-- .../__runner__/runner.py | 611 +++++++++++++++--- ...eys-hash-hgetall-50-fields-100B-values.yml | 23 +- ...h-20-fields-with-1B-values-pipeline-30.yml | 18 +- ...-load-hash-50-fields-with-1000B-values.yml | 19 +- ...s-load-hash-50-fields-with-100B-values.yml | 19 +- ...ys-load-hash-50-fields-with-10B-values.yml | 18 +- ...load-hash-50-fields-with-10000B-values.yml | 19 +- ...-load-list-with-10B-values-pipeline-50.yml | 8 +- ...-5-fields-with-100B-values-pipeline-10.yml | 8 +- ...ys-load-hash-5-fields-with-100B-values.yml | 8 +- ...h-5-fields-with-10B-values-pipeline-10.yml | 9 +- ...eys-load-hash-5-fields-with-10B-values.yml | 8 +- ...tring-get-10B-pipeline-100-nokeyprefix.yml | 12 +- ..._benchmark-1Mkeys-100B-expire-use-case.yml | 16 +- ...r_benchmark-1Mkeys-10B-expire-use-case.yml | 16 +- ...mark-1Mkeys-10B-psetex-expire-use-case.yml | 14 +- ...hmark-1Mkeys-10B-setex-expire-use-case.yml | 14 +- ..._benchmark-1Mkeys-1KiB-expire-use-case.yml | 16 +- ..._benchmark-1Mkeys-4KiB-expire-use-case.yml | 16 +- ...hmark-1Mkeys-bitmap-getbit-pipeline-10.yml | 12 +- ...mark-1Mkeys-generic-exists-pipeline-10.yml | 12 +- ...mark-1Mkeys-generic-expire-pipeline-10.yml | 12 +- ...rk-1Mkeys-generic-expireat-pipeline-10.yml | 12 +- ...ark-1Mkeys-generic-pexpire-pipeline-10.yml | 12 +- ...eys-generic-scan-count-500-pipeline-10.yml | 12 +- ...eric-scan-cursor-count-500-pipeline-10.yml | 13 +- ...ric-scan-cursor-count-5000-pipeline-10.yml | 13 +- ...1Mkeys-generic-scan-cursor-pipeline-10.yml | 13 +- ...chmark-1Mkeys-generic-scan-pipeline-10.yml | 12 +- ...k-1Mkeys-generic-scan-type-pipeline-10.yml | 12 +- ...hmark-1Mkeys-generic-touch-pipeline-10.yml | 11 +- ...nchmark-1Mkeys-generic-ttl-pipeline-10.yml | 11 +- .../memtier_benchmark-1Mkeys-hash-hexists.yml | 17 +- ...t-hgetall-hkeys-hvals-with-100B-values.yml | 15 +- ...keys-hash-hgetall-50-fields-10B-values.yml | 23 +- .../memtier_benchmark-1Mkeys-hash-hincrby.yml | 12 +- ...ier_benchmark-1Mkeys-hash-hincrbyfloat.yml | 12 +- ...-5-fields-with-100B-values-pipeline-10.yml | 14 +- ...sh-transactions-multi-exec-pipeline-20.yml | 12 +- ...1Mkeys-list-lpop-rpop-with-100B-values.yml | 13 +- ...-1Mkeys-list-lpop-rpop-with-10B-values.yml | 13 +- ...1Mkeys-list-lpop-rpop-with-1KiB-values.yml | 13 +- ...-1Mkeys-list-rpoplpush-with-10B-values.yml | 12 +- ...5-fields-with-1000B-values-pipeline-10.yml | 9 +- ...s-load-hash-5-fields-with-1000B-values.yml | 8 +- ...-hash-hmset-5-fields-with-1000B-values.yml | 8 +- ...1Mkeys-load-list-rpush-with-10B-values.yml | 7 +- ...mark-1Mkeys-load-list-with-100B-values.yml | 7 +- ...-load-list-with-10B-values-pipeline-10.yml | 8 +- ...hmark-1Mkeys-load-list-with-10B-values.yml | 7 +- ...mark-1Mkeys-load-list-with-1KiB-values.yml | 7 +- ...ith-100-elements-19-digits-pipeline-10.yml | 33 +- ...set-intset-with-100-elements-19-digits.yml | 33 +- ...t-intset-with-100-elements-pipeline-10.yml | 16 +- ...keys-load-set-intset-with-100-elements.yml | 15 +- ...-1-fields-with-100B-values-pipeline-10.yml | 8 +- ...-load-stream-1-fields-with-100B-values.yml | 8 +- ...-5-fields-with-100B-values-pipeline-10.yml | 9 +- ...-load-stream-5-fields-with-100B-values.yml | 8 +- ...ad-string-with-100B-values-pipeline-10.yml | 7 +- ...rk-1Mkeys-load-string-with-100B-values.yml | 8 +- ...oad-string-with-10B-values-pipeline-10.yml | 8 +- ...th-10B-values-pipeline-100-nokeyprefix.yml | 8 +- ...ad-string-with-10B-values-pipeline-100.yml | 8 +- ...oad-string-with-10B-values-pipeline-50.yml | 8 +- ...ad-string-with-10B-values-pipeline-500.yml | 8 +- ...ark-1Mkeys-load-string-with-10B-values.yml | 7 +- ...rk-1Mkeys-load-string-with-1KiB-values.yml | 7 +- ...k-1Mkeys-load-string-with-20KiB-values.yml | 8 +- ...istpack-with-100-elements-double-score.yml | 66 +- ...oad-zset-with-10-elements-double-score.yml | 10 +- ...s-load-zset-with-10-elements-int-score.yml | 9 +- ...Mkeys-string-append-1-100B-pipeline-10.yml | 13 +- ..._benchmark-1Mkeys-string-append-1-100B.yml | 12 +- .../memtier_benchmark-1Mkeys-string-decr.yml | 11 +- ...ark-1Mkeys-string-get-100B-pipeline-10.yml | 11 +- ...mtier_benchmark-1Mkeys-string-get-100B.yml | 11 +- ...mark-1Mkeys-string-get-10B-pipeline-10.yml | 12 +- ...tring-get-10B-pipeline-100-nokeyprefix.yml | 12 +- ...ark-1Mkeys-string-get-10B-pipeline-100.yml | 12 +- ...mark-1Mkeys-string-get-10B-pipeline-50.yml | 12 +- ...ark-1Mkeys-string-get-10B-pipeline-500.yml | 12 +- ...emtier_benchmark-1Mkeys-string-get-10B.yml | 11 +- ...ark-1Mkeys-string-get-1KiB-pipeline-10.yml | 12 +- ...mtier_benchmark-1Mkeys-string-get-1KiB.yml | 14 +- ...mark-1Mkeys-string-get-32B-pipeline-10.yml | 11 +- ...emtier_benchmark-1Mkeys-string-get-32B.yml | 11 +- ...nchmark-1Mkeys-string-incr-pipeline-10.yml | 8 +- ...hmark-1Mkeys-string-incrby-pipeline-10.yml | 8 +- ...memtier_benchmark-1Mkeys-string-incrby.yml | 8 +- ...-1Mkeys-string-incrbyfloat-pipeline-10.yml | 8 +- ...er_benchmark-1Mkeys-string-incrbyfloat.yml | 8 +- ...string-int-encoding-strlen-pipeline-10.yml | 11 +- ...tier_benchmark-1Mkeys-string-mget-1KiB.yml | 12 +- ...-50-50-set-get-100B-expire-pipeline-10.yml | 13 +- ...string-mixed-50-50-set-get-100B-expire.yml | 13 +- ...g-mixed-50-50-set-get-100B-pipeline-10.yml | 13 +- ...1Mkeys-string-mixed-50-50-set-get-100B.yml | 12 +- ...ng-mixed-50-50-set-get-1KB-pipeline-10.yml | 13 +- ...-1Mkeys-string-mixed-50-50-set-get-1KB.yml | 12 +- ...ng-mixed-50-50-set-get-32B-pipeline-10.yml | 13 +- ...-1Mkeys-string-mixed-50-50-set-get-32B.yml | 12 +- ...g-mixed-50-50-set-get-512B-pipeline-10.yml | 13 +- ...1Mkeys-string-mixed-50-50-set-get-512B.yml | 12 +- ...set-get-with-expiration-240B-400_conns.yml | 14 +- ...ys-string-set-with-ex-100B-pipeline-10.yml | 10 +- ...k-1Mkeys-string-setex-100B-pipeline-10.yml | 10 +- ...Mkeys-string-setrange-100B-pipeline-10.yml | 12 +- ..._benchmark-1Mkeys-string-setrange-100B.yml | 12 +- ...nchmark-1key-100M-bits-bitmap-bitcount.yml | 15 +- ...ark-1key-1Billion-bits-bitmap-bitcount.yml | 15 +- ...r_benchmark-1key-geo-2-elements-geopos.yml | 11 +- ...lements-geosearch-fromlonlat-withcoord.yml | 13 +- ...y-geo-60M-elements-geodist-pipeline-10.yml | 9 +- ...enchmark-1key-geo-60M-elements-geodist.yml | 9 +- ...y-geo-60M-elements-geohash-pipeline-10.yml | 8 +- ...enchmark-1key-geo-60M-elements-geohash.yml | 5 +- ...ey-geo-60M-elements-geopos-pipeline-10.yml | 8 +- ...benchmark-1key-geo-60M-elements-geopos.yml | 5 +- ...0M-elements-geosearch-fromlonlat-bybox.yml | 9 +- ...ments-geosearch-fromlonlat-pipeline-10.yml | 9 +- ...-geo-60M-elements-geosearch-fromlonlat.yml | 9 +- ...key-hash-1K-fields-hgetall-pipeline-10.yml | 258 +++++++- ..._benchmark-1key-hash-1K-fields-hgetall.yml | 255 +++++++- ...K-fields-100B-values-cursor-count-1000.yml | 261 +++++++- ...-1K-fields-10B-values-cursor-count-100.yml | 261 +++++++- ...k-1key-hash-hscan-1K-fields-10B-values.yml | 260 +++++++- ...k-1key-hash-hscan-50-fields-10B-values.yml | 24 +- ...ements-lrange-all-elements-pipeline-10.yml | 11 +- ...y-list-10-elements-lrange-all-elements.yml | 8 +- ...t-uint-lrange-all-elements-pipeline-10.yml | 17 +- ...ts-int-lrange-all-elements-pipeline-10.yml | 25 +- ...key-list-100-elements-llen-pipeline-10.yml | 26 +- ...ements-lrange-all-elements-pipeline-10.yml | 26 +- ...-list-100-elements-lrange-all-elements.yml | 23 +- ...-1key-list-10K-elements-lindex-integer.yml | 9 +- ...10K-elements-lindex-string-pipeline-10.yml | 12 +- ...k-1key-list-10K-elements-lindex-string.yml | 9 +- ...list-10K-elements-linsert-lrem-integer.yml | 14 +- ...-list-10K-elements-linsert-lrem-string.yml | 14 +- ...rk-1key-list-10K-elements-lpos-integer.yml | 9 +- ...ark-1key-list-10K-elements-lpos-string.yml | 9 +- ...ements-lrange-all-elements-pipeline-10.yml | 176 ++++- ...y-list-1K-elements-lrange-all-elements.yml | 173 ++++- ...ts-quicklist-lrange-all-elements-longs.yml | 230 ++++++- ...key-load-hash-1K-fields-with-5B-values.yml | 257 +++++++- ...et-with-5-elements-parsing-float-score.yml | 11 +- ...set-with-5-elements-parsing-hexa-score.yml | 11 +- ...mark-1key-pfadd-4KB-values-pipeline-10.yml | 7 +- ...y-set-10-elements-smembers-pipeline-10.yml | 11 +- ...enchmark-1key-set-10-elements-smembers.yml | 8 +- ...chmark-1key-set-10-elements-smismember.yml | 12 +- ...set-100-elements-sismember-is-a-member.yml | 27 +- ...et-100-elements-sismember-not-a-member.yml | 27 +- ...nchmark-1key-set-100-elements-smembers.yml | 24 +- ...hmark-1key-set-100-elements-smismember.yml | 27 +- ..._benchmark-1key-set-100-elements-sscan.yml | 24 +- ...et-10M-elements-sismember-50pct-chance.yml | 11 +- ...key-set-10M-elements-srem-50pct-chance.yml | 11 +- ...enchmark-1key-set-1K-elements-smembers.yml | 174 ++++- ...set-1K-elements-sscan-cursor-count-100.yml | 177 ++++- ...r_benchmark-1key-set-1K-elements-sscan.yml | 174 ++++- ...set-1M-elements-sismember-50pct-chance.yml | 10 +- ...k-1key-set-200K-elements-sadd-constant.yml | 11 +- ...k-1key-set-2M-elements-sadd-increasing.yml | 6 +- ...rk-1key-zincrby-1M-elements-pipeline-1.yml | 11 +- ...rk-1key-zrank-100K-elements-pipeline-1.yml | 11 +- ...ark-1key-zrank-10M-elements-pipeline-1.yml | 12 +- ...mark-1key-zrank-1M-elements-pipeline-1.yml | 11 +- ...hmark-1key-zrem-5M-elements-pipeline-1.yml | 18 +- ...vrangebyscore-256K-elements-pipeline-1.yml | 12 +- ...rangebyscore-256K-elements-pipeline-10.yml | 12 +- ...k-1key-zrevrank-1M-elements-pipeline-1.yml | 11 +- ...ements-zrange-all-elements-long-scores.yml | 14 +- ...y-zset-10-elements-zrange-all-elements.yml | 13 +- ...-zset-100-elements-zrange-all-elements.yml | 39 +- ...zrangebyscore-all-elements-long-scores.yml | 39 +- ...00-elements-zrangebyscore-all-elements.yml | 39 +- ...benchmark-1key-zset-100-elements-zscan.yml | 36 +- ...y-zset-1K-elements-zrange-all-elements.yml | 296 ++++++++- ..._benchmark-1key-zset-1K-elements-zscan.yml | 293 ++++++++- ...key-zset-1M-elements-zcard-pipeline-10.yml | 8 +- ...-elements-zremrangebyscore-pipeline-10.yml | 12 +- ...-zset-1M-elements-zrevrange-5-elements.yml | 9 +- ...ange-withscores-5-elements-pipeline-10.yml | 12 +- ...ey-zset-1M-elements-zscore-pipeline-10.yml | 11 +- ...-600K-elements-zrangestore-1K-elements.yml | 12 +- ...00K-elements-zrangestore-300K-elements.yml | 14 +- ...listpack-zrank-100-elements-pipeline-1.yml | 23 +- ...r_benchmark-2keys-lua-eval-hset-expire.yml | 9 +- ...enchmark-2keys-lua-evalsha-hset-expire.yml | 16 +- ...chmark-2keys-set-10-100-elements-sdiff.yml | 28 +- ...hmark-2keys-set-10-100-elements-sinter.yml | 28 +- ...hmark-2keys-set-10-100-elements-sunion.yml | 28 +- ...-entries-xread-all-entries-pipeline-10.yml | 29 +- ...eys-stream-5-entries-xread-all-entries.yml | 29 +- ...t-300-elements-skiplist-encoded-zunion.yml | 409 +++++++++++- ...-elements-skiplist-encoded-zunionstore.yml | 409 +++++++++++- ...ad-string-with-512B-values-pipeline-10.yml | 8 +- ...rk-3Mkeys-load-string-with-512B-values.yml | 8 +- ...-string-get-with-1KiB-values-400_conns.yml | 32 +- ...s-string-get-with-1KiB-values-40_conns.yml | 32 +- ...ith-1KiB-values-pipeline-10-2000_conns.yml | 13 +- ...with-1KiB-values-pipeline-10-400_conns.yml | 13 +- ...-with-1KiB-values-pipeline-10-40_conns.yml | 13 +- ...mixed-20-80-with-512B-values-400_conns.yml | 32 +- ...ith-512B-values-pipeline-10-2000_conns.yml | 13 +- ...with-512B-values-pipeline-10-400_conns.yml | 13 +- ...ith-512B-values-pipeline-10-5200_conns.yml | 13 +- ...-with-expiration-pipeline-10-400_conns.yml | 14 +- ...benchmark-connection-hello-pipeline-10.yml | 7 +- .../memtier_benchmark-connection-hello.yml | 7 +- ...ark-nokeys-connection-ping-pipeline-10.yml | 5 +- ...ls-128B-100-publishers-100-subscribers.yml | 35 +- ...s-128B-100-publishers-1000-subscribers.yml | 35 +- ...s-128B-100-publishers-5000-subscribers.yml | 35 +- ...00-publishers-50K-subscribers-5k-conns.yml | 35 +- ...publish-1K-channels-10B-no-subscribers.yml | 8 +- ...nchmark-nokeys-server-time-pipeline-10.yml | 5 +- .../vector_db_benchmark_test.yml | 3 - utils/tests/test_runner.py | 242 ++++++- 228 files changed, 7160 insertions(+), 1032 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0d00fcb6..fd9ed7ba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.281" +version = "0.1.291" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__common__/runner.py b/redis_benchmarks_specification/__common__/runner.py index 2ed5d3d4..947345b2 100644 --- a/redis_benchmarks_specification/__common__/runner.py +++ b/redis_benchmarks_specification/__common__/runner.py @@ -196,6 +196,7 @@ def exporter_datasink_common( ] }, ) + print(overall_end_time_metrics) # 7 days from now expire_redis_metrics_ms = 7 * 24 * 60 * 60 * 1000 export_redis_metrics( @@ -234,3 +235,19 @@ def exporter_datasink_common( {"metric-type": "commandstats"}, expire_redis_metrics_ms, ) + + # Update deployment tracking sets + deployment_type_and_name = f"{setup_type}_AND_{setup_name}" + deployment_type_and_name_and_version = f"{setup_type}_AND_{setup_name}_AND_{git_version}" + + # Add to deployment-specific set + deployment_set_key = f"ci.benchmarks.redislabs/{tf_triggering_env}/{deployment_type_and_name_and_version}:set" + datasink_conn.sadd(deployment_set_key, test_name) + + # Add to testcases set + testcases_set_key = f"ci.benchmarks.redislabs/{tf_triggering_env}/testcases:set" + datasink_conn.sadd(testcases_set_key, test_name) + + # Add metadata fields to timeseries metadata + metadata["deployment_type_AND_deployment_name"] = deployment_type_and_name + metadata["deployment_type_AND_deployment_name_AND_version"] = deployment_type_and_name_and_version diff --git a/redis_benchmarks_specification/__common__/timeseries.py b/redis_benchmarks_specification/__common__/timeseries.py index e1f14650..95eb3cca 100644 --- a/redis_benchmarks_specification/__common__/timeseries.py +++ b/redis_benchmarks_specification/__common__/timeseries.py @@ -147,7 +147,11 @@ def extract_results_table( # For precision_summary metrics, construct the full resolved path for display display_path = metric_jsonpath - if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path: + if ( + "precision_summary" in metric_jsonpath + and "*" in metric_jsonpath + and use_metric_context_path + ): # Replace the wildcard with the actual precision level display_path = metric_jsonpath.replace("*", metric_context_path) @@ -156,7 +160,10 @@ def extract_results_table( metric_name = metric_jsonpath else: # For display purposes, use the resolved path for precision_summary - if "precision_summary" in metric_jsonpath and "*" in metric_jsonpath: + if ( + "precision_summary" in metric_jsonpath + and "*" in metric_jsonpath + ): metric_name = display_path else: # Clean up the metric name for other cases @@ -167,7 +174,11 @@ def extract_results_table( metric_name = metric_name.replace(" ", "_") # Apply standard cleaning to all metric names - if not ("precision_summary" in metric_jsonpath and "*" in metric_jsonpath and use_metric_context_path): + if not ( + "precision_summary" in metric_jsonpath + and "*" in metric_jsonpath + and use_metric_context_path + ): metric_name = metric_name.replace("'", "") metric_name = metric_name.replace('"', "") metric_name = metric_name.replace("(", "") diff --git a/redis_benchmarks_specification/__compare__/args.py b/redis_benchmarks_specification/__compare__/args.py index d628bc30..f1a4497d 100644 --- a/redis_benchmarks_specification/__compare__/args.py +++ b/redis_benchmarks_specification/__compare__/args.py @@ -61,13 +61,13 @@ def create_compare_arguments(parser): "--triggering_env_baseline", type=str, default=None, - help="Triggering environment for baseline data. If not specified, falls back to --triggering_env" + help="Triggering environment for baseline data. If not specified, falls back to --triggering_env", ) parser.add_argument( "--triggering_env_comparison", type=str, default=None, - help="Triggering environment for comparison data. If not specified, falls back to --triggering_env" + help="Triggering environment for comparison data. If not specified, falls back to --triggering_env", ) parser.add_argument("--github_token", type=str, default=PERFORMANCE_GH_TOKEN) parser.add_argument("--pull-request", type=str, default=None, nargs="?", const="") @@ -83,13 +83,13 @@ def create_compare_arguments(parser): "--running_platform_baseline", type=str, default=None, - help="Platform for baseline data. If not specified, falls back to --running_platform" + help="Platform for baseline data. If not specified, falls back to --running_platform", ) parser.add_argument( "--running_platform_comparison", type=str, default=None, - help="Platform for comparison data. If not specified, falls back to --running_platform" + help="Platform for comparison data. If not specified, falls back to --running_platform", ) parser.add_argument("--extra-filter", type=str, default=None) parser.add_argument( diff --git a/redis_benchmarks_specification/__compare__/compare.py b/redis_benchmarks_specification/__compare__/compare.py index 14650a37..1403d038 100644 --- a/redis_benchmarks_specification/__compare__/compare.py +++ b/redis_benchmarks_specification/__compare__/compare.py @@ -255,7 +255,9 @@ def compare_command_logic(args, project_name, project_version): # Handle separate baseline and comparison platform/environment arguments # Fall back to general arguments if specific ones are not provided running_platform_baseline = args.running_platform_baseline or args.running_platform - running_platform_comparison = args.running_platform_comparison or args.running_platform + running_platform_comparison = ( + args.running_platform_comparison or args.running_platform + ) triggering_env_baseline = args.triggering_env_baseline or args.triggering_env triggering_env_comparison = args.triggering_env_comparison or args.triggering_env @@ -731,7 +733,9 @@ def compute_regression_table( _, _, _, - ) = get_overall_dashboard_keynames(tf_github_org, tf_github_repo, tf_triggering_env_baseline) + ) = get_overall_dashboard_keynames( + tf_github_org, tf_github_repo, tf_triggering_env_baseline + ) test_names = [] used_key = testcases_setname test_filter = "test_name" @@ -1167,25 +1171,31 @@ def from_rts_to_regression_table( multi_value_comparison = check_multi_value_filter(comparison_str) filters_baseline = [ - "{}={}".format(by_str_baseline, baseline_str), "metric={}".format(metric_name), "{}={}".format(test_filter, test_name), - "deployment_name={}".format(baseline_deployment_name), "github_repo={}".format(baseline_github_repo), "triggering_env={}".format(tf_triggering_env_baseline), ] + if baseline_str != "": + filters_baseline.append("{}={}".format(by_str_baseline, baseline_str)) + if baseline_deployment_name != "": + filters_baseline.append("deployment_name={}".format(baseline_deployment_name)) if baseline_github_org != "": filters_baseline.append(f"github_org={baseline_github_org}") if running_platform_baseline is not None: - filters_baseline.append("running_platform={}".format(running_platform_baseline)) + filters_baseline.append( + "running_platform={}".format(running_platform_baseline) + ) filters_comparison = [ - "{}={}".format(by_str_comparison, comparison_str), "metric={}".format(metric_name), "{}={}".format(test_filter, test_name), - "deployment_name={}".format(comparison_deployment_name), "github_repo={}".format(comparison_github_repo), "triggering_env={}".format(tf_triggering_env_comparison), ] + if comparison_str != "": + filters_comparison.append("{}={}".format(by_str_comparison, comparison_str)) + if comparison_deployment_name != "": + filters_comparison.append("deployment_name={}".format(comparison_deployment_name)) if comparison_github_org != "": filters_comparison.append(f"github_org={comparison_github_org}") if "hash" not in by_str_baseline: @@ -1193,7 +1203,9 @@ def from_rts_to_regression_table( if "hash" not in by_str_comparison: filters_comparison.append("hash==") if running_platform_comparison is not None: - filters_comparison.append("running_platform={}".format(running_platform_comparison)) + filters_comparison.append( + "running_platform={}".format(running_platform_comparison) + ) baseline_timeseries = rts.ts().queryindex(filters_baseline) comparison_timeseries = rts.ts().queryindex(filters_comparison) diff --git a/redis_benchmarks_specification/__runner__/args.py b/redis_benchmarks_specification/__runner__/args.py index c9e5d295..ece0b5c2 100644 --- a/redis_benchmarks_specification/__runner__/args.py +++ b/redis_benchmarks_specification/__runner__/args.py @@ -20,6 +20,12 @@ def create_client_runner_args(project_name): description=project_name, formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) + parser.add_argument( + "--version", + action="version", + version=project_name, + help="Show version information and exit", + ) parser.add_argument( "--platform-name", type=str, @@ -34,6 +40,24 @@ def create_client_runner_args(project_name): ) parser.add_argument("--triggering_env", type=str, default="ci") parser.add_argument("--setup_type", type=str, default="oss-standalone") + parser.add_argument( + "--deployment_type", + type=str, + default="oss-standalone", + help="Deployment type for the Redis instance (e.g., oss-standalone, oss-cluster, enterprise)" + ) + parser.add_argument( + "--deployment_name", + type=str, + default="redis", + help="Deployment name identifier for the Redis instance" + ) + parser.add_argument( + "--core_count", + type=int, + default=None, + help="Number of CPU cores available to the Redis instance" + ) parser.add_argument("--github_repo", type=str, default="redis") parser.add_argument("--github_org", type=str, default="redis") parser.add_argument("--github_version", type=str, default="NA") @@ -152,6 +176,18 @@ def create_client_runner_args(project_name): action="store_true", help="Run tests that contain a dbconfig with dataset", ) + parser.add_argument( + "--skip-tests-without-dataset", + default=False, + action="store_true", + help="Skip tests that do not contain a dbconfig with dataset", + ) + parser.add_argument( + "--memory-comparison-only", + default=False, + action="store_true", + help="Run memory comparison only - execute preload and measure memory usage without client benchmarks", + ) parser.add_argument( "--client_aggregated_results_folder", type=str, diff --git a/redis_benchmarks_specification/__runner__/remote_profiling.py b/redis_benchmarks_specification/__runner__/remote_profiling.py index 23c97628..9012ac8e 100644 --- a/redis_benchmarks_specification/__runner__/remote_profiling.py +++ b/redis_benchmarks_specification/__runner__/remote_profiling.py @@ -19,10 +19,10 @@ def extract_redis_pid(redis_conn) -> Optional[int]: """ Extract Redis process ID from Redis INFO command. - + Args: redis_conn: Redis connection object - + Returns: Redis process ID as integer, or None if not found """ @@ -43,10 +43,10 @@ def extract_redis_pid(redis_conn) -> Optional[int]: def extract_redis_metadata(redis_conn) -> Dict[str, Any]: """ Extract Redis metadata for profile comments. - + Args: redis_conn: Redis connection object - + Returns: Dictionary containing Redis metadata """ @@ -60,18 +60,20 @@ def extract_redis_metadata(redis_conn) -> Dict[str, Any]: "process_id": redis_info.get("process_id", "unknown"), "tcp_port": redis_info.get("tcp_port", "unknown"), } - + # Use build_id if git_sha1 is empty or 0 if metadata["redis_git_sha1"] in ("", 0, "0"): metadata["redis_git_sha1"] = metadata["redis_build_id"] - - logging.info(f"Extracted Redis metadata: version={metadata['redis_version']}, sha={metadata['redis_git_sha1']}, pid={metadata['process_id']}") + + logging.info( + f"Extracted Redis metadata: version={metadata['redis_version']}, sha={metadata['redis_git_sha1']}, pid={metadata['process_id']}" + ) return metadata except Exception as e: logging.error(f"Failed to extract Redis metadata: {e}") return { "redis_version": "unknown", - "redis_git_sha1": "unknown", + "redis_git_sha1": "unknown", "redis_git_dirty": "unknown", "redis_build_id": "unknown", "process_id": "unknown", @@ -79,19 +81,187 @@ def extract_redis_metadata(redis_conn) -> Dict[str, Any]: } +def extract_server_info_for_args(redis_conn) -> Dict[str, str]: + """ + Extract server information from Redis INFO SERVER to auto-detect + github_org, github_repo, github_version, and github_hash when not explicitly provided. + + Args: + redis_conn: Redis connection object + + Returns: + Dictionary containing detected server information: + - github_org: Detected organization (e.g., 'redis', 'valkey-io') + - github_repo: Detected repository (e.g., 'redis', 'valkey') + - github_version: Detected version + - github_hash: Detected git hash from redis_git_sha1 + - server_name: Server name from INFO + """ + try: + server_info = redis_conn.info("server") + + # Extract server name and version info + server_name = server_info.get("server_name", "").lower() + redis_version = server_info.get("redis_version", "unknown") + + # Extract git hash info + redis_git_sha1 = server_info.get("redis_git_sha1", "") + redis_build_id = server_info.get("redis_build_id", "") + github_hash = "unknown" + + # Use git_sha1 if available and not empty/zero + if redis_git_sha1 and redis_git_sha1 not in ("", "0", "00000000"): + github_hash = redis_git_sha1 + # Fallback to build_id if git_sha1 is not available + elif redis_build_id and redis_build_id not in ("", "0"): + github_hash = redis_build_id + + # Default values + github_org = "redis" + github_repo = "redis" + github_version = redis_version + + # Check for Valkey + if "valkey" in server_name: + github_org = "valkey-io" + github_repo = "valkey" + # Use valkey_version if available, fallback to redis_version + valkey_version = server_info.get("valkey_version") + if valkey_version: + github_version = valkey_version + + logging.info( + f"Auto-detected server info: org={github_org}, repo={github_repo}, " + f"version={github_version}, hash={github_hash}, server_name={server_name}" + ) + + return { + "github_org": github_org, + "github_repo": github_repo, + "github_version": github_version, + "github_hash": github_hash, + "server_name": server_name, + } + + except Exception as e: + logging.error(f"Failed to extract server info: {e}") + return { + "github_org": "redis", + "github_repo": "redis", + "github_version": "unknown", + "github_hash": "unknown", + "server_name": "unknown", + } + + +def extract_server_metadata_for_timeseries(redis_conn) -> Dict[str, str]: + """ + Extract comprehensive server metadata from Redis INFO SERVER for use as + timeseries metadata tags. + + Args: + redis_conn: Redis connection object + + Returns: + Dictionary containing server metadata for timeseries tags: + - os: Operating system information + - arch_bits: Architecture bits (32/64) + - gcc_version: GCC compiler version + - server_mode: Server mode (standalone/cluster/sentinel) + - multiplexing_api: Multiplexing API used (epoll/kqueue/etc) + - atomicvar_api: Atomic variable API + - redis_build_id: Build ID + - redis_git_dirty: Git dirty flag + - process_supervised: Process supervision status + - availability_zone: Availability zone (if available) + - And other interesting metadata fields + """ + try: + server_info = redis_conn.info("server") + + # Extract interesting metadata fields for timeseries tags + metadata = {} + + # Core system information + if "os" in server_info: + metadata["os"] = str(server_info["os"]) + if "arch_bits" in server_info: + metadata["arch_bits"] = str(server_info["arch_bits"]) + if "gcc_version" in server_info: + metadata["gcc_version"] = str(server_info["gcc_version"]) + + # Server configuration + if "server_mode" in server_info: + metadata["server_mode"] = str(server_info["server_mode"]) + elif "redis_mode" in server_info: # Fallback for older versions + metadata["server_mode"] = str(server_info["redis_mode"]) + + # Performance-related APIs + if "multiplexing_api" in server_info: + metadata["multiplexing_api"] = str(server_info["multiplexing_api"]) + if "atomicvar_api" in server_info: + metadata["atomicvar_api"] = str(server_info["atomicvar_api"]) + if "monotonic_clock" in server_info: + metadata["monotonic_clock"] = str(server_info["monotonic_clock"]) + + # Build information + if "redis_build_id" in server_info: + metadata["redis_build_id"] = str(server_info["redis_build_id"]) + if "redis_git_dirty" in server_info: + metadata["redis_git_dirty"] = str(server_info["redis_git_dirty"]) + + # Process information + if "process_supervised" in server_info: + metadata["process_supervised"] = str(server_info["process_supervised"]) + + # Cloud/deployment information + if "availability_zone" in server_info and server_info["availability_zone"]: + metadata["availability_zone"] = str(server_info["availability_zone"]) + + # IO threads (performance relevant) + if "io_threads_active" in server_info: + metadata["io_threads_active"] = str(server_info["io_threads_active"]) + + # Server name and version info + if "server_name" in server_info and server_info["server_name"]: + metadata["server_name"] = str(server_info["server_name"]) + if "redis_version" in server_info: + metadata["redis_version"] = str(server_info["redis_version"]) + if "valkey_version" in server_info: + metadata["valkey_version"] = str(server_info["valkey_version"]) + if "valkey_release_stage" in server_info: + metadata["valkey_release_stage"] = str(server_info["valkey_release_stage"]) + + # Configuration file info + if "config_file" in server_info and server_info["config_file"]: + metadata["config_file"] = str(server_info["config_file"]) + else: + metadata["config_file"] = "none" + + logging.info(f"Extracted {len(metadata)} server metadata fields for timeseries: {list(metadata.keys())}") + + return metadata + + except Exception as e: + logging.error(f"Failed to extract server metadata: {e}") + return {} + + def calculate_profile_duration(benchmark_duration_seconds: int) -> int: """ Calculate profiling duration based on benchmark duration. - + Args: benchmark_duration_seconds: Expected benchmark duration in seconds - + Returns: Profiling duration in seconds (minimum: benchmark duration, maximum: 30) """ # Minimum duration is the benchmark duration, maximum is 30 seconds duration = min(max(benchmark_duration_seconds, 10), 30) - logging.info(f"Calculated profile duration: {duration}s (benchmark: {benchmark_duration_seconds}s)") + logging.info( + f"Calculated profile duration: {duration}s (benchmark: {benchmark_duration_seconds}s)" + ) return duration @@ -102,7 +272,7 @@ def trigger_remote_profile( duration: int, timeout: int = 60, username: Optional[str] = None, - password: Optional[str] = None + password: Optional[str] = None, ) -> Optional[bytes]: """ Trigger remote profiling via HTTP GET request using pprof endpoint. @@ -120,10 +290,7 @@ def trigger_remote_profile( Profile content in pprof binary format, or None if failed """ url = f"http://{host}:{port}/debug/pprof/profile" - params = { - "pid": pid, - "seconds": duration - } + params = {"pid": pid, "seconds": duration} # Prepare authentication if provided auth = None @@ -132,7 +299,9 @@ def trigger_remote_profile( logging.info(f"Using HTTP basic authentication with username: {username}") try: - logging.info(f"Triggering remote profile: {url} with PID={pid}, duration={duration}s") + logging.info( + f"Triggering remote profile: {url} with PID={pid}, duration={duration}s" + ) response = requests.get(url, params=params, timeout=timeout, auth=auth) response.raise_for_status() @@ -161,7 +330,7 @@ def save_profile_with_metadata( benchmark_name: str, output_dir: str, redis_metadata: Dict[str, Any], - duration: int + duration: int, ) -> Optional[str]: """ Save profile content to file in pprof binary format. @@ -188,7 +357,7 @@ def save_profile_with_metadata( timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # Write binary profile content directly - with open(filepath, 'wb') as f: + with open(filepath, "wb") as f: f.write(profile_content) # Create a separate metadata file @@ -209,7 +378,7 @@ def save_profile_with_metadata( f"duration_seconds={duration}\n" ) - with open(metadata_filepath, 'w') as f: + with open(metadata_filepath, "w") as f: f.write(metadata_content) logging.info(f"Saved profile to: {filepath}") @@ -226,7 +395,14 @@ class RemoteProfiler: Remote profiler class to handle threaded profiling execution. """ - def __init__(self, host: str, port: int, output_dir: str, username: Optional[str] = None, password: Optional[str] = None): + def __init__( + self, + host: str, + port: int, + output_dir: str, + username: Optional[str] = None, + password: Optional[str] = None, + ): self.host = host self.port = port self.output_dir = output_dir @@ -235,21 +411,18 @@ def __init__(self, host: str, port: int, output_dir: str, username: Optional[str self.profile_thread = None self.profile_result = None self.profile_error = None - + def start_profiling( - self, - redis_conn, - benchmark_name: str, - benchmark_duration_seconds: int + self, redis_conn, benchmark_name: str, benchmark_duration_seconds: int ) -> bool: """ Start profiling in a separate thread. - + Args: redis_conn: Redis connection object benchmark_name: Name of the benchmark benchmark_duration_seconds: Expected benchmark duration - + Returns: True if profiling thread started successfully, False otherwise """ @@ -257,44 +430,60 @@ def start_profiling( # Extract Redis metadata and PID redis_metadata = extract_redis_metadata(redis_conn) pid = redis_metadata.get("process_id") - + if pid == "unknown" or pid is None: logging.error("Cannot start remote profiling: Redis PID not available") return False - + # Calculate profiling duration duration = calculate_profile_duration(benchmark_duration_seconds) - + # Start profiling thread self.profile_thread = threading.Thread( target=self._profile_worker, args=(pid, duration, benchmark_name, redis_metadata), - daemon=True + daemon=True, ) self.profile_thread.start() - - logging.info(f"Started remote profiling thread for benchmark: {benchmark_name}") + + logging.info( + f"Started remote profiling thread for benchmark: {benchmark_name}" + ) return True - + except Exception as e: logging.error(f"Failed to start remote profiling: {e}") return False - - def _profile_worker(self, pid: int, duration: int, benchmark_name: str, redis_metadata: Dict[str, Any]): + + def _profile_worker( + self, + pid: int, + duration: int, + benchmark_name: str, + redis_metadata: Dict[str, Any], + ): """ Worker function for profiling thread. """ try: # Trigger remote profiling profile_content = trigger_remote_profile( - self.host, self.port, pid, duration, - username=self.username, password=self.password + self.host, + self.port, + pid, + duration, + username=self.username, + password=self.password, ) if profile_content is not None: # Save profile with metadata filepath = save_profile_with_metadata( - profile_content, benchmark_name, self.output_dir, redis_metadata, duration + profile_content, + benchmark_name, + self.output_dir, + redis_metadata, + duration, ) self.profile_result = filepath else: @@ -303,38 +492,42 @@ def _profile_worker(self, pid: int, duration: int, benchmark_name: str, redis_me except Exception as e: self.profile_error = f"Profile worker error: {e}" logging.error(self.profile_error) - + def wait_for_completion(self, timeout: int = 60) -> bool: """ Wait for profiling thread to complete. - + Args: timeout: Maximum time to wait in seconds - + Returns: True if completed successfully, False if timed out or failed """ if self.profile_thread is None: return False - + try: self.profile_thread.join(timeout=timeout) - + if self.profile_thread.is_alive(): - logging.warning(f"Remote profiling thread did not complete within {timeout}s") + logging.warning( + f"Remote profiling thread did not complete within {timeout}s" + ) return False - + if self.profile_error: logging.error(f"Remote profiling failed: {self.profile_error}") return False - + if self.profile_result: - logging.info(f"Remote profiling completed successfully: {self.profile_result}") + logging.info( + f"Remote profiling completed successfully: {self.profile_result}" + ) return True else: logging.warning("Remote profiling completed but no result available") return False - + except Exception as e: logging.error(f"Error waiting for remote profiling completion: {e}") return False diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index adeff6b1..4890737f 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -4,6 +4,7 @@ import math import os import shutil +import signal import subprocess import sys import tempfile @@ -66,6 +67,23 @@ from redis_benchmarks_specification.__runner__.remote_profiling import RemoteProfiler +# Global flag to track if user wants to exit +_exit_requested = False + + +def signal_handler(signum, frame): + """Handle Ctrl+C signal to exit gracefully""" + global _exit_requested + if not _exit_requested: + _exit_requested = True + logging.info("Ctrl+C detected. Exiting after current test completes...") + print("\nCtrl+C detected. Exiting after current test completes...") + else: + logging.info("Ctrl+C detected again. Force exiting...") + print("\nForce exiting...") + sys.exit(1) + + def run_local_command_with_timeout(command_str, timeout_seconds, description="command"): """ Run a local command with timeout support. @@ -79,7 +97,9 @@ def run_local_command_with_timeout(command_str, timeout_seconds, description="co tuple: (success, stdout, stderr) """ try: - logging.info(f"Running {description} with {timeout_seconds}s timeout: {command_str}") + logging.info( + f"Running {description} with {timeout_seconds}s timeout: {command_str}" + ) # Use shell=True to support complex command strings with pipes, etc. process = subprocess.Popen( @@ -87,7 +107,7 @@ def run_local_command_with_timeout(command_str, timeout_seconds, description="co shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - text=True + text=True, ) try: @@ -106,7 +126,9 @@ def run_local_command_with_timeout(command_str, timeout_seconds, description="co logging.error(f"{description} timed out after {timeout_seconds} seconds") process.kill() try: - stdout, stderr = process.communicate(timeout=5) # Give 5 seconds to cleanup + stdout, stderr = process.communicate( + timeout=5 + ) # Give 5 seconds to cleanup except subprocess.TimeoutExpired: stdout, stderr = "", "Process killed due to timeout" return False, stdout, f"Timeout after {timeout_seconds} seconds. {stderr}" @@ -136,7 +158,9 @@ def calculate_process_timeout(command_str, buffer_timeout): if test_time_match: test_time = int(test_time_match.group(1)) timeout = test_time + buffer_timeout - logging.info(f"Set process timeout to {timeout}s (test-time: {test_time}s + {buffer_timeout}s buffer)") + logging.info( + f"Set process timeout to {timeout}s (test-time: {test_time}s + {buffer_timeout}s buffer)" + ) return timeout logging.info(f"Using default process timeout: {default_timeout}s") @@ -170,7 +194,9 @@ def parse_size(size): return int(number * units[unit]) -def extract_expected_benchmark_duration(benchmark_command_str, override_memtier_test_time): +def extract_expected_benchmark_duration( + benchmark_command_str, override_memtier_test_time +): """ Extract expected benchmark duration from command string or override. @@ -242,7 +268,9 @@ def run_multiple_clients( if "memtier_benchmark" in client_tool: # Set benchmark path based on local install option if args.benchmark_local_install: - full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + full_benchmark_path = getattr( + args, "memtier_bin_path", "memtier_benchmark" + ) else: full_benchmark_path = f"/usr/local/bin/{client_tool}" @@ -334,7 +362,9 @@ def run_multiple_clients( # Calculate container timeout container_timeout = 300 # 5 minutes default # Use new timeout_buffer argument, fallback to container_timeout_buffer for backward compatibility - buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) + buffer_timeout = getattr( + args, "timeout_buffer", getattr(args, "container_timeout_buffer", 60) + ) if "test-time" in benchmark_command_str: # Try to extract test time and add buffer import re @@ -520,17 +550,29 @@ def run_multiple_clients( ) elif "vector-db-benchmark" in tool: # For vector-db-benchmark, look for summary JSON file - summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")] + summary_files = [ + f + for f in os.listdir(temporary_dir_client) + if f.endswith("-summary.json") + ] if summary_files: - summary_filepath = os.path.join(temporary_dir_client, summary_files[0]) + summary_filepath = os.path.join( + temporary_dir_client, summary_files[0] + ) try: - with open(summary_filepath, 'r') as f: + with open(summary_filepath, "r") as f: vector_json = json.load(f) - logging.info(f"Successfully read vector-db-benchmark JSON output from {summary_files[0]}") + logging.info( + f"Successfully read vector-db-benchmark JSON output from {summary_files[0]}" + ) except Exception as e: - logging.warning(f"Failed to read vector-db-benchmark JSON from {summary_files[0]}: {e}") + logging.warning( + f"Failed to read vector-db-benchmark JSON from {summary_files[0]}: {e}" + ) else: - logging.warning(f"No vector-db-benchmark summary JSON file found for client {client_index}") + logging.warning( + f"No vector-db-benchmark summary JSON file found for client {client_index}" + ) logging.info( f"Successfully read JSON output from client {client_index} ({tool})" @@ -554,25 +596,33 @@ def run_multiple_clients( aggregated_json.update(pubsub_json) aggregated_json.update(vector_json) aggregated_stdout = json.dumps(aggregated_json, indent=2) - logging.info("Using merged JSON results from memtier, pubsub-sub-bench, and vector-db-benchmark clients") + logging.info( + "Using merged JSON results from memtier, pubsub-sub-bench, and vector-db-benchmark clients" + ) elif memtier_json and pubsub_json: # Use memtier as base and add pubsub metrics aggregated_json = memtier_json.copy() aggregated_json.update(pubsub_json) aggregated_stdout = json.dumps(aggregated_json, indent=2) - logging.info("Using merged JSON results from memtier and pubsub-sub-bench clients") + logging.info( + "Using merged JSON results from memtier and pubsub-sub-bench clients" + ) elif memtier_json and vector_json: # Use memtier as base and add vector metrics aggregated_json = memtier_json.copy() aggregated_json.update(vector_json) aggregated_stdout = json.dumps(aggregated_json, indent=2) - logging.info("Using merged JSON results from memtier and vector-db-benchmark clients") + logging.info( + "Using merged JSON results from memtier and vector-db-benchmark clients" + ) elif pubsub_json and vector_json: # Use pubsub as base and add vector metrics aggregated_json = pubsub_json.copy() aggregated_json.update(vector_json) aggregated_stdout = json.dumps(aggregated_json, indent=2) - logging.info("Using merged JSON results from pubsub-sub-bench and vector-db-benchmark clients") + logging.info( + "Using merged JSON results from pubsub-sub-bench and vector-db-benchmark clients" + ) elif memtier_json: # Only memtier available aggregated_json = memtier_json @@ -591,12 +641,17 @@ def run_multiple_clients( else: # Fall back to concatenated stdout aggregated_stdout = "\n".join([r["stdout"] for r in successful_results]) - logging.warning("No JSON results found, falling back to concatenated stdout") + logging.warning( + "No JSON results found, falling back to concatenated stdout" + ) return aggregated_stdout, results def main(): + # Register signal handler for graceful exit on Ctrl+C + signal.signal(signal.SIGINT, signal_handler) + _, _, project_version = populate_with_poetry_data() project_name_suffix = "redis-benchmarks-spec-client-runner" project_name = f"{project_name_suffix} (solely client)" @@ -913,7 +968,9 @@ def prepare_vector_db_benchmark_parameters( # Add custom arguments if specified if "arguments" in clientconfig: - benchmark_command_str = " ".join(benchmark_command) + " " + clientconfig["arguments"] + benchmark_command_str = ( + " ".join(benchmark_command) + " " + clientconfig["arguments"] + ) else: benchmark_command_str = " ".join(benchmark_command) @@ -1050,7 +1107,10 @@ def delete_temporary_files( results_matrix = [] total_test_suite_runs = 0 dry_run_count = 0 + dry_run_tests = [] # Track test names for dry run output + memory_results = [] # Track memory results for memory comparison mode dry_run = args.dry_run + memory_comparison_only = args.memory_comparison_only dry_run_include_preload = args.dry_run_include_preload defaults_filename = args.defaults_filename override_test_runs = args.override_test_runs @@ -1064,6 +1124,11 @@ def delete_temporary_files( ) = get_defaults(defaults_filename) for test_file in tqdm.tqdm(testsuite_spec_files): + # Check if user requested exit via Ctrl+C + if _exit_requested: + logging.info("Exit requested by user. Stopping test execution.") + break + if defaults_filename in test_file: continue client_containers = [] @@ -1073,6 +1138,11 @@ def delete_temporary_files( None, None, stream, "" ) + # Check if user requested exit via Ctrl+C + if _exit_requested: + logging.info(f"Exit requested by user. Skipping test {test_name}.") + break + if tls_enabled: test_name = test_name + "-tls" logging.info( @@ -1089,6 +1159,7 @@ def delete_temporary_files( current_cpu_pos = args.cpuset_start_pos temporary_dir_client = tempfile.mkdtemp(dir=home) + # These will be updated after auto-detection tf_github_org = args.github_org tf_github_repo = args.github_repo tf_triggering_env = args.platform_name @@ -1121,7 +1192,46 @@ def delete_temporary_files( ) setup_name = "oss-standalone" r.ping() + + # Auto-detect server information if not explicitly provided + from redis_benchmarks_specification.__runner__.remote_profiling import ( + extract_server_info_for_args, + extract_server_metadata_for_timeseries + ) + + detected_info = extract_server_info_for_args(r) + server_metadata = extract_server_metadata_for_timeseries(r) + + # Use detected values if arguments weren't explicitly provided + github_org = args.github_org + github_repo = args.github_repo + + # Auto-detect github_org if it's the default value + if args.github_org == "redis" and detected_info["github_org"] != "redis": + github_org = detected_info["github_org"] + logging.info(f"Auto-detected github_org: {github_org}") + + # Auto-detect github_repo if it's the default value + if args.github_repo == "redis" and detected_info["github_repo"] != "redis": + github_repo = detected_info["github_repo"] + logging.info(f"Auto-detected github_repo: {github_repo}") + + # Auto-detect version if it's the default value + if args.github_version == "NA" and detected_info["github_version"] != "unknown": + git_version = detected_info["github_version"] + logging.info(f"Auto-detected github_version: {git_version}") + + # Auto-detect git hash if it's the default value + if git_hash == "NA" and detected_info["github_hash"] != "unknown": + git_hash = detected_info["github_hash"] + logging.info(f"Auto-detected git_hash: {git_hash}") + + # Update tf_github_org and tf_github_repo with detected values + tf_github_org = github_org + tf_github_repo = github_repo redis_conns = [r] + + if oss_cluster_api_enabled: redis_conns = [] logging.info("updating redis connections from cluster slots") @@ -1156,8 +1266,8 @@ def delete_temporary_files( # Check if all tested commands are supported by this Redis instance supported_commands = get_supported_redis_commands(redis_conns) - commands_supported, unsupported_commands = check_test_command_support( - benchmark_config, supported_commands + commands_supported, unsupported_commands = ( + check_test_command_support(benchmark_config, supported_commands) ) if not commands_supported: @@ -1199,6 +1309,15 @@ def delete_temporary_files( for conn in redis_conns: conn.flushall() + # Send MEMORY PURGE after FLUSHALL for memory comparison mode + if memory_comparison_only: + try: + logging.info("Sending MEMORY PURGE after FLUSHALL at test start") + for conn in redis_conns: + conn.execute_command("MEMORY", "PURGE") + except Exception as e: + logging.warning(f"MEMORY PURGE failed after FLUSHALL at test start: {e}") + benchmark_required_memory = get_benchmark_required_memory( benchmark_config ) @@ -1235,11 +1354,28 @@ def delete_temporary_files( benchmark_tool_workdir = client_mnt_point metadata = {} + # Add server metadata from Redis INFO SERVER + metadata.update(server_metadata) + + # Add connection mode metadata + if tls_enabled: + metadata["conn_mode"] = "TLS" + metadata["tls"] = "true" + else: + metadata["conn_mode"] = "PLAINTEXT" + + # Add deployment metadata + metadata["deployment_type"] = args.deployment_type + metadata["deployment_name"] = args.deployment_name + + # Add core count if specified + if args.core_count is not None: + metadata["core_count"] = str(args.core_count) + test_tls_cacert = None test_tls_cert = None test_tls_key = None if tls_enabled: - metadata["tls"] = "true" if tls_cert is not None and tls_cert != "": _, test_tls_cert = cp_to_workdir( temporary_dir_client, tls_cert @@ -1317,8 +1453,38 @@ def delete_temporary_files( ) continue + # Check if we should skip tests without dataset + has_dataset = "preload_tool" in benchmark_config.get("dbconfig", {}) + if args.skip_tests_without_dataset is True and not has_dataset: + logging.warning( + "Skipping test {} as it does not contain a dataset".format( + test_name + ) + ) + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + + # For memory comparison mode, only run tests with dbconfig + if memory_comparison_only and "dbconfig" not in benchmark_config: + logging.warning( + "Skipping test {} in memory comparison mode as it does not contain dbconfig".format( + test_name + ) + ) + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + if dry_run is True: dry_run_count = dry_run_count + 1 + dry_run_tests.append(test_name) delete_temporary_files( temporary_dir_client=temporary_dir_client, full_result_path=None, @@ -1328,7 +1494,11 @@ def delete_temporary_files( if "dbconfig" in benchmark_config: if "preload_tool" in benchmark_config["dbconfig"]: # Get timeout buffer for preload - buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) + buffer_timeout = getattr( + args, + "timeout_buffer", + getattr(args, "container_timeout_buffer", 60), + ) res = data_prepopulation_step( benchmark_config, @@ -1363,6 +1533,15 @@ def delete_temporary_files( benchmark_tool_global=benchmark_tool_global, ) continue + # Send MEMORY PURGE before preload for memory comparison mode (if FLUSHALL wasn't already done) + if memory_comparison_only and not args.flushall_on_every_test_start: + try: + logging.info("Sending MEMORY PURGE before preload for memory comparison mode") + for conn in redis_conns: + conn.execute_command("MEMORY", "PURGE") + except Exception as e: + logging.warning(f"MEMORY PURGE failed before preload: {e}") + execute_init_commands( benchmark_config, r, dbconfig_keyname="dbconfig" ) @@ -1381,8 +1560,119 @@ def delete_temporary_files( redis_conns, ) + # For memory comparison mode, collect memory stats after preload and skip client benchmark + if memory_comparison_only: + logging.info(f"Collecting memory stats for test {test_name}") + try: + # Use raw command to avoid parsing issues with some Redis versions + memory_stats_raw = r.execute_command("MEMORY", "STATS") + # Convert list response to dict + memory_stats = {} + for i in range(0, len(memory_stats_raw), 2): + key = memory_stats_raw[i].decode() if isinstance(memory_stats_raw[i], bytes) else str(memory_stats_raw[i]) + value = memory_stats_raw[i + 1] + if isinstance(value, bytes): + try: + value = float(value.decode()) + except ValueError: + value = value.decode() + memory_stats[key] = value + except Exception as e: + logging.error(f"Failed to collect memory stats: {e}") + # Fallback to basic memory info + info = r.info("memory") + memory_stats = { + "total.allocated": info.get("used_memory", 0), + "dataset.bytes": info.get("used_memory_dataset", 0), + "keys.count": r.dbsize(), + "keys.bytes-per-key": 0, + "dataset.percentage": 0, + "overhead.total": 0, + "fragmentation": info.get("mem_fragmentation_ratio", 1.0), + "fragmentation.bytes": 0, + "allocator.allocated": info.get("used_memory", 0), + "allocator.resident": info.get("used_memory_rss", 0), + "allocator-fragmentation.ratio": 1.0, + } + + # Extract key memory metrics + memory_result = { + "test_name": test_name, + "total_allocated": memory_stats.get("total.allocated", 0), + "dataset_bytes": memory_stats.get("dataset.bytes", 0), + "keys_count": memory_stats.get("keys.count", 0), + "keys_bytes_per_key": memory_stats.get("keys.bytes-per-key", 0), + "dataset_percentage": memory_stats.get("dataset.percentage", 0), + "overhead_total": memory_stats.get("overhead.total", 0), + "fragmentation": memory_stats.get("fragmentation", 0), + "fragmentation_bytes": memory_stats.get("fragmentation.bytes", 0), + "allocator_allocated": memory_stats.get("allocator.allocated", 0), + "allocator_resident": memory_stats.get("allocator.resident", 0), + "allocator_fragmentation_ratio": memory_stats.get("allocator-fragmentation.ratio", 0), + } + memory_results.append(memory_result) + + # Push memory metrics to datasink + if datasink_push_results_redistimeseries: + memory_metrics_dict = { + "memory.total_allocated": memory_result["total_allocated"], + "memory.dataset_bytes": memory_result["dataset_bytes"], + "memory.keys_count": memory_result["keys_count"], + "memory.keys_bytes_per_key": memory_result["keys_bytes_per_key"], + "memory.dataset_percentage": memory_result["dataset_percentage"], + "memory.overhead_total": memory_result["overhead_total"], + "memory.fragmentation": memory_result["fragmentation"], + "memory.fragmentation_bytes": memory_result["fragmentation_bytes"], + "memory.allocator_allocated": memory_result["allocator_allocated"], + "memory.allocator_resident": memory_result["allocator_resident"], + "memory.allocator_fragmentation_ratio": memory_result["allocator_fragmentation_ratio"], + } + + exporter_datasink_common( + benchmark_config, + 0, # benchmark_duration_seconds = 0 for memory only + build_variant_name, + datapoint_time_ms, + dataset_load_duration_seconds, + datasink_conn, + datasink_push_results_redistimeseries, + git_branch, + git_version, + metadata, + redis_conns, + memory_metrics_dict, + running_platform, + args.deployment_name, + args.deployment_type, + test_name, + tf_github_org, + tf_github_repo, + tf_triggering_env, + topology_spec_name, + default_metrics, + git_hash, + ) + + # Send MEMORY PURGE after memory comparison (if FLUSHALL at test end is not enabled) + if not args.flushall_on_every_test_end: + try: + logging.info("Sending MEMORY PURGE after memory comparison") + for conn in redis_conns: + conn.execute_command("MEMORY", "PURGE") + except Exception as e: + logging.warning(f"MEMORY PURGE failed after memory comparison: {e}") + + logging.info(f"Memory comparison completed for test {test_name}") + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + if dry_run_include_preload is True: dry_run_count = dry_run_count + 1 + dry_run_tests.append(test_name) delete_temporary_files( temporary_dir_client=temporary_dir_client, full_result_path=None, @@ -1397,8 +1687,13 @@ def delete_temporary_files( benchmark_tool = "redis-benchmark" # Set benchmark path based on local install option - if args.benchmark_local_install and "memtier_benchmark" in benchmark_tool: - full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + if ( + args.benchmark_local_install + and "memtier_benchmark" in benchmark_tool + ): + full_benchmark_path = getattr( + args, "memtier_bin_path", "memtier_benchmark" + ) else: full_benchmark_path = f"/usr/local/bin/{benchmark_tool}" @@ -1564,7 +1859,7 @@ def delete_temporary_files( args.remote_profile_port, args.remote_profile_output_dir, args.remote_profile_username, - args.remote_profile_password + args.remote_profile_password, ) # Extract expected benchmark duration @@ -1576,13 +1871,17 @@ def delete_temporary_files( profiling_started = remote_profiler.start_profiling( redis_conns[0] if redis_conns else None, test_name, - expected_duration + expected_duration, ) if profiling_started: - logging.info(f"Started remote profiling for test: {test_name}") + logging.info( + f"Started remote profiling for test: {test_name}" + ) else: - logging.warning(f"Failed to start remote profiling for test: {test_name}") + logging.warning( + f"Failed to start remote profiling for test: {test_name}" + ) remote_profiler = None except Exception as e: @@ -1634,14 +1933,22 @@ def delete_temporary_files( ) # Calculate timeout for local process - buffer_timeout = getattr(args, 'timeout_buffer', getattr(args, 'container_timeout_buffer', 60)) - process_timeout = calculate_process_timeout(benchmark_command_str, buffer_timeout) + buffer_timeout = getattr( + args, + "timeout_buffer", + getattr(args, "container_timeout_buffer", 60), + ) + process_timeout = calculate_process_timeout( + benchmark_command_str, buffer_timeout + ) # Run with timeout - success, client_container_stdout, stderr = run_local_command_with_timeout( - benchmark_command_str, - process_timeout, - "memtier benchmark" + success, client_container_stdout, stderr = ( + run_local_command_with_timeout( + benchmark_command_str, + process_timeout, + "memtier benchmark", + ) ) if not success: @@ -1666,7 +1973,9 @@ def delete_temporary_files( # Set working directory based on tool working_dir = benchmark_tool_workdir if "vector-db-benchmark" in benchmark_tool: - working_dir = "/app" # vector-db-benchmark needs to run from /app + working_dir = ( + "/app" # vector-db-benchmark needs to run from /app + ) # Prepare volumes volumes = { @@ -1697,7 +2006,9 @@ def delete_temporary_files( # Only add user for non-vector-db-benchmark tools to avoid permission issues if "vector-db-benchmark" not in benchmark_tool: - container_kwargs["user"] = f"{os.getuid()}:{os.getgid()}" + container_kwargs["user"] = ( + f"{os.getuid()}:{os.getgid()}" + ) # Add environment variables for vector-db-benchmark if "vector-db-benchmark" in benchmark_tool: @@ -1761,13 +2072,19 @@ def delete_temporary_files( if remote_profiler is not None: try: logging.info("Waiting for remote profiling to complete...") - profiling_success = remote_profiler.wait_for_completion(timeout=60) + profiling_success = remote_profiler.wait_for_completion( + timeout=60 + ) if profiling_success: logging.info("Remote profiling completed successfully") else: - logging.warning("Remote profiling did not complete successfully") + logging.warning( + "Remote profiling did not complete successfully" + ) except Exception as e: - logging.error(f"Error waiting for remote profiling completion: {e}") + logging.error( + f"Error waiting for remote profiling completion: {e}" + ) logging.info("Printing client tool stdout output") if client_container_stdout: @@ -1784,11 +2101,6 @@ def delete_temporary_files( "end of benchmark", used_memory_check_fail, ) - - if args.flushall_on_every_test_end: - logging.info("Sending FLUSHALL to the DB") - for r in redis_conns: - r.flushall() datapoint_time_ms = start_time_ms post_process_benchmark_results( @@ -1835,21 +2147,36 @@ def delete_temporary_files( ) elif "vector-db-benchmark" in benchmark_tool: # For vector-db-benchmark, look for summary JSON file - summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")] + summary_files = [ + f + for f in os.listdir(temporary_dir_client) + if f.endswith("-summary.json") + ] if summary_files: - full_result_path = os.path.join(temporary_dir_client, summary_files[0]) - logging.info(f"Found vector-db-benchmark summary file: {summary_files[0]}") + full_result_path = os.path.join( + temporary_dir_client, summary_files[0] + ) + logging.info( + f"Found vector-db-benchmark summary file: {summary_files[0]}" + ) else: - logging.warning("No vector-db-benchmark summary JSON file found") + logging.warning( + "No vector-db-benchmark summary JSON file found" + ) # Create empty results dict to avoid crash results_dict = {} logging.info(f"Reading results json from {full_result_path}") - if "vector-db-benchmark" in benchmark_tool and not os.path.exists(full_result_path): + if ( + "vector-db-benchmark" in benchmark_tool + and not os.path.exists(full_result_path) + ): # Handle case where vector-db-benchmark didn't produce results results_dict = {} - logging.warning("Vector-db-benchmark did not produce results file") + logging.warning( + "Vector-db-benchmark did not produce results file" + ) else: with open( full_result_path, @@ -1889,18 +2216,37 @@ def delete_temporary_files( redis_conns, results_dict, running_platform, - setup_name, - setup_type, + args.deployment_name, + args.deployment_type, test_name, tf_github_org, tf_github_repo, tf_triggering_env, topology_spec_name, default_metrics, + git_hash, ) test_result = True total_test_suite_runs = total_test_suite_runs + 1 + if args.flushall_on_every_test_end: + logging.info("Sending FLUSHALL to the DB") + for r in redis_conns: + r.flushall() + + # Send MEMORY PURGE after FLUSHALL for memory comparison mode + if memory_comparison_only: + try: + logging.info("Sending MEMORY PURGE after FLUSHALL at test end") + for r in redis_conns: + r.execute_command("MEMORY", "PURGE") + except Exception as e: + logging.warning(f"MEMORY PURGE failed after FLUSHALL at test end: {e}") + + except KeyboardInterrupt: + logging.info("KeyboardInterrupt caught. Exiting...") + print("\nKeyboardInterrupt caught. Exiting...") + break except: logging.critical( "Some unexpected exception was caught " @@ -1911,6 +2257,11 @@ def delete_temporary_files( traceback.print_exc(file=sys.stdout) print("-" * 60) test_result = False + + # Check if user requested exit via Ctrl+C + if _exit_requested: + logging.info("Exit requested by user. Stopping after exception.") + break # tear-down logging.info("Tearing down setup") for container in client_containers: @@ -1945,6 +2296,11 @@ def delete_temporary_files( benchmark_tool_global=benchmark_tool_global, ) + # Check if user requested exit via Ctrl+C + if _exit_requested: + logging.info("Exit requested by user. Printing summary before exit.") + print("\nExecution stopped by user request. Printing summary of completed tests...") + # Print Redis server information section before results if len(results_matrix) > 0: # Get redis_conns from the first test context (we need to pass it somehow) @@ -1967,6 +2323,10 @@ def delete_temporary_files( ) writer.write_table() + # Add note if execution was stopped early + if _exit_requested: + print("\n(Note: Execution was stopped early by user request - showing results for completed tests only)") + if client_aggregated_results_folder != "": os.makedirs(client_aggregated_results_folder, exist_ok=True) dest_fpath = f"{client_aggregated_results_folder}/aggregate-results.csv" @@ -1979,10 +2339,61 @@ def delete_temporary_files( ) csv_writer.dump(dest_fpath) + # Print memory comparison summary if in memory comparison mode + if memory_comparison_only and memory_results: + logging.info("\n" + "="*80) + logging.info("MEMORY COMPARISON SUMMARY") + logging.info("="*80) + + # Create memory summary table + memory_headers = [ + "Test Name", + "Total Allocated", + "Dataset Bytes", + "Keys Count", + "Bytes/Key", + "Dataset %", + "Overhead", + "Fragmentation", + "Alloc Fragmentation" + ] + + memory_matrix = [] + for result in memory_results: + # Convert bytes to human readable format + total_mb = result["total_allocated"] / (1024 * 1024) + dataset_mb = result["dataset_bytes"] / (1024 * 1024) + overhead_mb = result["overhead_total"] / (1024 * 1024) + + memory_matrix.append([ + result["test_name"], + f"{total_mb:.1f}MB", + f"{dataset_mb:.1f}MB", + f"{result['keys_count']:,}", + f"{result['keys_bytes_per_key']:.0f}B", + f"{result['dataset_percentage']:.1f}%", + f"{overhead_mb:.1f}MB", + f"{result['fragmentation']:.2f}", + f"{result['allocator_fragmentation_ratio']:.3f}" + ]) + + memory_writer = MarkdownTableWriter( + table_name="Memory Usage Summary", + headers=memory_headers, + value_matrix=memory_matrix, + ) + memory_writer.write_table() + if dry_run is True: logging.info( "Number of tests that would have been run: {}".format(dry_run_count) ) + if _exit_requested: + logging.info("(Note: Execution was stopped early by user request)") + if dry_run_tests: + logging.info("Tests that would be run:") + final_test_regex = "|".join(dry_run_tests) + logging.info(f"Final test regex: {final_test_regex}") def get_maxmemory(r): @@ -1990,7 +2401,9 @@ def get_maxmemory(r): # Check if maxmemory key exists in Redis memory info if "maxmemory" not in memory_info: - logging.warning("maxmemory not present in Redis memory info. Cannot enforce memory checks.") + logging.warning( + "maxmemory not present in Redis memory info. Cannot enforce memory checks." + ) return 0 maxmemory = int(memory_info["maxmemory"]) @@ -2085,10 +2498,12 @@ def print_results_table_stdout( # Use resolved metric name for precision_summary metrics, otherwise use original path def get_display_name(x): # For precision_summary metrics with wildcards, construct the resolved path - if (len(x) > 1 and - isinstance(x[0], str) and - "precision_summary" in x[0] and - "*" in x[0]): + if ( + len(x) > 1 + and isinstance(x[0], str) + and "precision_summary" in x[0] + and "*" in x[0] + ): # Look for the precision level in the cleaned metrics logs # We need to find the corresponding cleaned metric to get the precision level @@ -2097,17 +2512,19 @@ def get_display_name(x): # Since we know from logs that the precision level is available, # let's reconstruct it from the metric context path (x[1]) if available - if len(x) > 1 and isinstance(x[1], str) and x[1].startswith("'") and x[1].endswith("'"): + if ( + len(x) > 1 + and isinstance(x[1], str) + and x[1].startswith("'") + and x[1].endswith("'") + ): precision_level = x[1] # This should be something like "'1.0000'" resolved_path = x[0].replace("*", precision_level) return resolved_path return x[0] # Use original path - results_matrix = [ - [get_display_name(x), f"{x[3]:.3f}"] - for x in results_matrix - ] + results_matrix = [[get_display_name(x), f"{x[3]:.3f}"] for x in results_matrix] writer = MarkdownTableWriter( table_name=table_name, headers=results_matrix_headers, @@ -2123,16 +2540,28 @@ def print_redis_info_section(redis_conns): redis_info = redis_conns[0].info() server_name = "redis" if "server_name" in redis_info: - server_name = redis_info['server_name'] + server_name = redis_info["server_name"] print("\n# Redis Server Information") redis_info_data = [ - [f"{server_name} version", redis_info.get(f"{server_name}_version", "unknown")], + [ + f"{server_name} version", + redis_info.get(f"{server_name}_version", "unknown"), + ], ["redis version", redis_info.get("redis_version", "unknown")], ["io_threads_active", redis_info.get("io_threads_active", "unknown")], - [f"{server_name} Git SHA1", redis_info.get("redis_git_sha1", "unknown")], - [f"{server_name} Git Dirty", str(redis_info.get("redis_git_dirty", "unknown"))], - [f"{server_name} Build ID", redis_info.get("redis_build_id", "unknown")], + [ + f"{server_name} Git SHA1", + redis_info.get("redis_git_sha1", "unknown"), + ], + [ + f"{server_name} Git Dirty", + str(redis_info.get("redis_git_dirty", "unknown")), + ], + [ + f"{server_name} Build ID", + redis_info.get("redis_build_id", "unknown"), + ], [f"{server_name} Mode", redis_info.get("redis_mode", "unknown")], ["OS", redis_info.get("os", "unknown")], ["Arch Bits", str(redis_info.get("arch_bits", "unknown"))], @@ -2167,7 +2596,9 @@ def get_supported_redis_commands(redis_conns): try: # Execute COMMAND to get all supported commands commands_info = redis_conns[0].execute_command("COMMAND") - logging.info(f"COMMAND response type: {type(commands_info)}, length: {len(commands_info) if hasattr(commands_info, '__len__') else 'N/A'}") + logging.info( + f"COMMAND response type: {type(commands_info)}, length: {len(commands_info) if hasattr(commands_info, '__len__') else 'N/A'}" + ) # Extract command names supported_commands = set() @@ -2176,7 +2607,7 @@ def get_supported_redis_commands(redis_conns): # COMMAND response is a dict with command names as keys for cmd_name in commands_info.keys(): if isinstance(cmd_name, bytes): - cmd_name = cmd_name.decode('utf-8') + cmd_name = cmd_name.decode("utf-8") supported_commands.add(str(cmd_name).upper()) elif isinstance(commands_info, (list, tuple)): # Fallback for list format (first element of each command info array) @@ -2184,10 +2615,12 @@ def get_supported_redis_commands(redis_conns): if isinstance(cmd_info, (list, tuple)) and len(cmd_info) > 0: cmd_name = cmd_info[0] if isinstance(cmd_name, bytes): - cmd_name = cmd_name.decode('utf-8') + cmd_name = cmd_name.decode("utf-8") supported_commands.add(str(cmd_name).upper()) - logging.info(f"Retrieved {len(supported_commands)} supported Redis commands") + logging.info( + f"Retrieved {len(supported_commands)} supported Redis commands" + ) # Log some sample commands for debugging if supported_commands: @@ -2195,7 +2628,9 @@ def get_supported_redis_commands(redis_conns): logging.info(f"Sample commands: {sample_commands}") # Check specifically for vector commands - vector_commands = [cmd for cmd in supported_commands if cmd.startswith('V')] + vector_commands = [ + cmd for cmd in supported_commands if cmd.startswith("V") + ] if vector_commands: logging.info(f"Vector commands found: {sorted(vector_commands)}") @@ -2255,13 +2690,20 @@ def prepare_overall_total_test_results( # Use the same display name logic as in the individual test results def get_overall_display_name(x): # For precision_summary metrics with wildcards, construct the resolved path - if (len(x) > 1 and - isinstance(x[0], str) and - "precision_summary" in x[0] and - "*" in x[0]): + if ( + len(x) > 1 + and isinstance(x[0], str) + and "precision_summary" in x[0] + and "*" in x[0] + ): # Reconstruct resolved path from metric context path (x[1]) if available - if len(x) > 1 and isinstance(x[1], str) and x[1].startswith("'") and x[1].endswith("'"): + if ( + len(x) > 1 + and isinstance(x[1], str) + and x[1].startswith("'") + and x[1].endswith("'") + ): precision_level = x[1] # This should be something like "'1.0000'" resolved_path = x[0].replace("*", precision_level) return resolved_path @@ -2269,7 +2711,8 @@ def get_overall_display_name(x): return x[0] # Use original path current_test_results_matrix = [ - [test_name, get_overall_display_name(x), f"{x[3]:.3f}"] for x in current_test_results_matrix + [test_name, get_overall_display_name(x), f"{x[3]:.3f}"] + for x in current_test_results_matrix ] overall_results_matrix.extend(current_test_results_matrix) @@ -2317,7 +2760,7 @@ def data_prepopulation_step( # Set preload tool path based on local install option if benchmark_local_install and "memtier_benchmark" in preload_tool and args: - full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark') + full_benchmark_path = getattr(args, "memtier_bin_path", "memtier_benchmark") else: full_benchmark_path = f"/usr/local/bin/{preload_tool}" client_mnt_point = "/mnt/client/" @@ -2364,13 +2807,13 @@ def data_prepopulation_step( ) # Calculate timeout for preload process - process_timeout = calculate_process_timeout(preload_command_str, timeout_buffer) + process_timeout = calculate_process_timeout( + preload_command_str, timeout_buffer + ) # Run with timeout success, client_container_stdout, stderr = run_local_command_with_timeout( - preload_command_str, - process_timeout, - "memtier preload" + preload_command_str, process_timeout, "memtier preload" ) if not success: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml index 3a520291..2b0483ef 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading HASHes in which the value has a data size of 10 Bytes. After pre-loading the data it issues HGETALL command. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + HASHes in which the value has a data size of 10 Bytes. After pre-loading the data + it issues HGETALL command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,23 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -n 500 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "HSET __key__ field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 -n 500 -c 50 -t 4 --hide-histogram' resources: requests: memory: 2g + dataset_name: 100Kkeys-hash-hgetall-50-fields-100B-values tested-groups: - hash tested-commands: @@ -25,10 +40,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HGETALL __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HGETALL __key__" --command-key-pattern="R" --key-minimum=1 + --key-maximum 100000 --test-time 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml index 40194863..c3a3c731 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-100Kkeys-load-hash-20-fields-with-1B-values-pipeline-30 -description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES with 50 fields each. Each field value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES + with 50 fields each. Each field value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,21 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command "HSET + __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 + __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 + __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ + field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 + __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ + field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 + __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ + field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 + __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ + field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 + __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" + --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml index 3c9c9847..a4194365 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values -description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES with 50 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES + with 50 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,22 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "1000" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "1000" --command + "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ + field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ + field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 + __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ + field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 + __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ + field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 + __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ + field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 + __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ + field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 + __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml index 56fa3218..cd0a1756 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES with 50 fields each. Each field value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES + with 50 fields each. Each field value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,22 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "100" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "100" --command + "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ + field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ + field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 + __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ + field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 + __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ + field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 + __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ + field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 + __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ + field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 + __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml index e7ab9c40..c083aab2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES with 50 fields each. Each field value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES + with 50 fields each. Each field value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,21 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command "HSET + __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 + __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 + __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ + field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 + __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ + field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 + __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ + field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 + __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ + field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 + __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" + --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml index 1dc29432..bcb8366c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values -description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES with 50 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 100K keys loading HASHES + with 50 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,22 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "10000" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 10000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "10000" --command + "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ + field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ + field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 + __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ + field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 + __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ + field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 + __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ + field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 + __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ + field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 + __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 10000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml index edd07a2d..9d1128f4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Kkeys-load-list-with-10B-values-pipeline-50 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --pipeline 50 --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --pipeline 50 --command "LPUSH __key__ __data__" + --command-key-pattern="P" --key-minimum=1 --key-maximum 10000 --test-time 180 + -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml index 36ba8f3b..6b7b4e79 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES with 5 fields each. Each field value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES + with 5 fields each. Each field value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" "--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" "--command-key-pattern" "P" --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram --test-time=180' + arguments: '"--pipeline" "10" "--data-size" "100" --command "HSET __key__ field1 + __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" "--command-key-pattern" + "P" --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram --test-time=180' resources: requests: cpus: '4' memory: 2g - tested-groups: - hash priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml index 7e3bba7b..fc45f4f2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES with 5 fields each. Each field value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES + with 5 fields each. Each field value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--data-size" "100" --command "HSET __key__ field1 __data__ + field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - hash priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml index 285162f6..60ac95fb 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES with 5 fields each. Each field value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES + with 5 fields each. Each field value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,14 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--pipeline" "10" "--data-size" "10" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--pipeline" "10" "--data-size" "10" --command "HSET + __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 + __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -c + 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - hash priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml index 6c214546..b2b42a60 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES with 5 fields each. Each field value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 10M keys loading HASHES + with 5 fields each. Each field value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--data-size" "10" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--data-size" "10" --command "HSET __key__ field1 __data__ + field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - hash priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index f7277205..eae4e76b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix -description: memtier_benchmark, 10M keys, string GET, 10B value size, pipeline=100, no key prefix +description: memtier_benchmark, 10M keys, string GET, 10B value size, pipeline=100, + no key prefix dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "4" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "10000000" "-n" "allkeys"' + arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "4" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "10000000" "-n" + "allkeys"' resources: requests: memory: 10g + dataset_name: 10Mkeys-string-get-10B-pipeline-100-nokeyprefix tested-groups: - string tested-commands: @@ -23,10 +27,10 @@ redis-topologies: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "GET __key__" --command-key-pattern="R" --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' + arguments: '"--data-size" "10" --command "GET __key__" --command-key-pattern="R" + --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml index 0918d16d..3da47505 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-100B-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "100" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 1g + dataset_name: 1Mkeys-100B-expire-use-case tested-groups: - string - generic @@ -30,10 +35,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" + --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" + --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c + 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml index 58788eb0..2289c519 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-10B-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 1g + dataset_name: 1Mkeys-10B-expire-use-case tested-groups: - string - generic @@ -30,10 +35,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" + --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" + --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c + 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml index 1b8f91b9..bb1214f8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-10B-psetex-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 1g + dataset_name: 1Mkeys-10B-psetex-expire-use-case tested-groups: - string tested-commands: @@ -25,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "PSETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" --command "PSETEX __key__ 10 __data__" --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml index 6b08c5f9..fa814725 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-10B-setex-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 1g + dataset_name: 1Mkeys-10B-setex-expire-use-case tested-groups: - string tested-commands: @@ -25,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "10" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml index daa5545a..fbac2669 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-1KiB-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1KiB Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1KiB Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 2g + dataset_name: 1Mkeys-1KiB-expire-use-case tested-groups: - string - generic @@ -30,10 +35,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "1000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180' + arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "1000" + --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET + __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" + --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram + --test-time 180' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml index db671c41..6bf82236 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-4KiB-expire-use-case -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 4KiB Bytes for each key, which 50% of the keys have expiration set during the benchmark. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 4KiB Bytes for each key, which 50% of the keys have expiration set during + the benchmark. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000"' resources: requests: memory: 3g + dataset_name: 1Mkeys-4KiB-expire-use-case tested-groups: - string - generic @@ -30,10 +35,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "4000" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120' + arguments: '"--key-minimum" "1" "--key-maximum" "1000000" "--data-size" "4000" + --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET + __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" + --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram + --test-time 120' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml index 73d21e53..00e6ab27 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on EXISTS performance. 50% of the EXIST commands will be on non-existing keys. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + EXISTS performance. 50% of the EXIST commands will be on non-existing keys. dbconfig: configuration-parameters: save: '""' @@ -9,11 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --key-minimum 1 --key-maximum 10000000 -c 50 -t 2 --pipeline 10 --command "SETBIT __key__ 1 1" --command-key-pattern "P" + arguments: --hide-histogram --key-minimum 1 --key-maximum 10000000 -c 50 -t 2 + --pipeline 10 --command "SETBIT __key__ 1 1" --command-key-pattern "P" resources: requests: cpus: '2' memory: 1g + dataset_name: 1Mkeys-bitmap-getbit-pipeline-10 tested-commands: - getbit tested-groups: @@ -26,10 +29,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="GETBIT __key__ 1" --command-key-pattern="R" --command "GETBIT __key__ 100" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="GETBIT __key__ 1" --command-key-pattern="R" --command + "GETBIT __key__ 100" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time + 180 resources: requests: cpus: '2' memory: 2g - priority: 19 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml index 2e2573e3..3fc7a8fd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-exists-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on EXISTS performance. 50% of the EXIST commands will be on non-existing keys. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + EXISTS performance. 50% of the EXIST commands will be on non-existing keys. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-exists-pipeline-10 tested-commands: - exists tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-minimum=1 --key-maximum 2000000 --command "EXISTS __key__" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --key-minimum=1 --key-maximum 2000000 --command "EXISTS __key__" --pipeline + 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 25 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml index f2a3acbf..84141b79 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-expire-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on EXPIRE performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + EXPIRE performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-expire-pipeline-10 tested-commands: - expire tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "EXPIRE __key__ 3600" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "EXPIRE __key__ 3600" --pipeline 10 --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 11 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml index 8b4f85c3..b0eec95f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on EXPIREAT performance ( expire second is 2038, January 1 ). +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + EXPIREAT performance ( expire second is 2038, January 1 ). dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-expireat-pipeline-10 tested-commands: - expireat tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "EXPIREAT __key__ 2145916800" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "EXPIREAT __key__ 2145916800" --pipeline 10 --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 29 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml index b3c7011d..fd5e65ed 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on PEXPIRE performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + PEXPIRE performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-pexpire-pipeline-10 tested-commands: - pexpire tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "PEXPIRE __key__ 3600000" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "PEXPIRE __key__ 3600000" --pipeline 10 --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 57 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml index 3d1be7ca..3ec330be 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with large COUNT. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance with large COUNT. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-count-500-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN 0 COUNT 500" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN 0 COUNT 500" --pipeline 10 --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml index ce274f4c..6c020be5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with CURSOR and large COUNT. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance with CURSOR and large COUNT. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-cursor-count-500-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN __key__ COUNT 500" --key-prefix "" --distinct-client-seed --key-maximum 1000000 --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN __key__ COUNT 500" --key-prefix "" --distinct-client-seed + --key-maximum 1000000 --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram + --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml index c89a2465..58c4dfa9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with CURSOR and large COUNT. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance with CURSOR and large COUNT. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-cursor-count-5000-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN __key__ COUNT 5000" --key-prefix "" --distinct-client-seed --key-maximum 1000000 --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN __key__ COUNT 5000" --key-prefix "" --distinct-client-seed + --key-maximum 1000000 --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram + --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml index 2af0369e..2843d46b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with CURSOR. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance with CURSOR. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-cursor-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN __key__" --pipeline 10 --key-prefix "" --distinct-client-seed --key-maximum 1000000 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN __key__" --pipeline 10 --key-prefix "" --distinct-client-seed + --key-maximum 1000000 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time + 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml index 4625927d..73ff6f9f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN 0" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN 0" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 + --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml index 924b1c30..914999d5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on SCAN performance with the TYPE option. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + SCAN performance with the TYPE option. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field + __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" + "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-scan-type-pipeline-10 tested-commands: - scan tested-groups: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "SCAN 0 TYPE HASH" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "SCAN 0 TYPE HASH" --pipeline 10 --command-key-pattern="R" + -c 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 44 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml index 12f5f94a..1690013b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-touch-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on TOUCH performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + TOUCH performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-touch-pipeline-10 tested-commands: - touch tested-groups: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "TOUCH __key__" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "TOUCH __key__" --pipeline 10 --command-key-pattern="R" -c + 50 -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 41 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml index 5f582959..9088d60d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on TTL performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys focusing on + TTL performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-generic-ttl-pipeline-10 tested-commands: - ttl tested-groups: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "TTL __key__" --pipeline 10 --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --command "TTL __key__" --pipeline 10 --command-key-pattern="R" -c 50 + -t 2 --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - priority: 22 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml index 4f8bcb74..5c826882 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hexists -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 100 Bytes. After loading test HEXISTS command. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 100 Bytes. After loading + test HEXISTS command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 + __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 1g + dataset_name: 1Mkeys-hash-hexists tested-groups: - hash tested-commands: @@ -25,10 +30,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "HEXISTS __key__ field1" --command-key-pattern="R" --command "HEXISTS __key__ field3" --command-key-pattern="R" --command "HEXISTS __key__ field_NO" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 4 -t 4 --hide-histogram + arguments: --test-time 180 --command "HEXISTS __key__ field1" --command-key-pattern="R" + --command "HEXISTS __key__ field3" --command-key-pattern="R" --command "HEXISTS + __key__ field_NO" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 + -c 4 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - -priority: 100 \ No newline at end of file +priority: 100 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml index 8268e607..538d24d0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading HASHes in which the value has a data size of 100 Bytes. After pre-loading the data it issues HGETALL, HGET, HKEYS, and HVALS commands. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + HASHes in which the value has a data size of 100 Bytes. After pre-loading the data + it issues HGETALL, HGET, HKEYS, and HVALS commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 + __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 1g + dataset_name: 1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values tested-groups: - hash tested-commands: @@ -28,10 +33,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HGETALL __key__" --command-key-pattern="R" --command "HKEYS __key__" --command-key-pattern="R" --command "HVALS __key__" --command-key-pattern="R" --command "HGET __key__ field1" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "HGETALL __key__" --command-key-pattern="R" + --command "HKEYS __key__" --command-key-pattern="R" --command "HVALS __key__" + --command-key-pattern="R" --command "HGET __key__ field1" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml index e5dd348a..d14bd163 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml @@ -1,7 +1,10 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading HASHes in which the value has a data size of 10 Bytes. After pre-loading the data it issues HGETALL command. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + HASHes in which the value has a data size of 10 Bytes. After pre-loading the data + it issues HGETALL command. dbconfig: + dataset_name: 1Mkeys-hash-hgetall-50-fields-10B-values configuration-parameters: save: '""' check: @@ -9,7 +12,19 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 2g @@ -25,10 +40,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HGETALL __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HGETALL __key__" --command-key-pattern="R" --key-minimum=1 + --key-maximum 1000000 --test-time 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml index cc6571f0..0d85d301 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hincrby -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 + __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 6g + dataset_name: 1Mkeys-hash-hincrby tested-groups: - hash tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "HINCRBY __key__ field1 1.0" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 --command "HINCRBY __key__ field1 1.0" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml index 7cb36243..b5e1a02c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hincrbyfloat -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 + __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 6g + dataset_name: 1Mkeys-hash-hincrbyfloat tested-groups: - hash tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "HINCRBYFLOAT __key__ field1 0.999999" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 --command "HINCRBYFLOAT __key__ field1 0.999999" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml index 20d05e77..115ce13a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading HASHes in which the value has a data size of 100 Bytes. After pre-loading the data it issues HMGET command retrieving all fields of the hash. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + HASHes in which the value has a data size of 100 Bytes. After pre-loading the data + it issues HMGET command retrieving all fields of the hash. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 + __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 1g + dataset_name: 1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 tested-groups: - hash tested-commands: @@ -25,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command "HMGET __key__ field1 field2 field3 field4 field5" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram + arguments: --pipeline 10 --command "HMGET __key__ field1 field2 field3 field4 field5" + --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 + -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 2 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml index 4825a97e..c2a7c706 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 -description: Runs memtier_benchmark for MULTI EXEC scenario - executing commands as a transaction. The transaction sets fields in a hash, checks if they exist, retrieves them and finally deletes them. At the end of execution there are no keys in the database. +description: Runs memtier_benchmark for MULTI EXEC scenario - executing commands as + a transaction. The transaction sets fields in a hash, checks if they exist, retrieves + them and finally deletes them. At the end of execution there are no keys in the + database. tested-groups: - transactions - hash @@ -27,10 +30,13 @@ dbconfig: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command=MULTI --command-key-pattern=S --command="HSETNX __key__ __key__ __data__" --command-key-pattern=S --command="HEXISTS __key__ __key__" --command-key-pattern=S --command="HGET __key__ __key__" --command-key-pattern=S --command="HDEL __key__ __key__" --command-key-pattern=S --command=EXEC --command-key-pattern=S --pipeline=20 -c 50 -t 2 --hide-histogram --test-time 300' + arguments: '"--data-size" "100" --command=MULTI --command-key-pattern=S --command="HSETNX + __key__ __key__ __data__" --command-key-pattern=S --command="HEXISTS __key__ __key__" + --command-key-pattern=S --command="HGET __key__ __key__" --command-key-pattern=S + --command="HDEL __key__ __key__" --command-key-pattern=S --command=EXEC --command-key-pattern=S + --pipeline=20 -c 50 -t 2 --hide-histogram --test-time 300' resources: requests: cpus: '3' memory: 2g - priority: 80 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml index 1b53d665..ad18e5c6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading LISTs in which the value has a data size of 100 Bytes. After pre-loading the data it issues LPOP and RPOP commands. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + LISTs in which the value has a data size of 100 Bytes. After pre-loading the data + it issues LPOP and RPOP commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' resources: requests: memory: 4g + dataset_name: 1Mkeys-list-lpop-rpop-with-100B-values tested-groups: - list tested-commands: @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "LPOP __key__" --command-key-pattern="R" --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "LPOP __key__" --command-key-pattern="R" + --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 55 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml index 9766803d..9c11abe8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading LISTs in which the value has a data size of 10 Bytes. After pre-loading the data it issues LPOP and RPOP commands. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + LISTs in which the value has a data size of 10 Bytes. After pre-loading the data + it issues LPOP and RPOP commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1Mkeys-list-lpop-rpop-with-10B-values tested-groups: - list tested-commands: @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "LPOP __key__" --command-key-pattern="R" --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "LPOP __key__" --command-key-pattern="R" + --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 55 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml index 1ab8231e..2ebf53e8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading LISTs in which the value has a data size of 1000 Bytes. After pre-loading the data it issues LPOP and RPOP commands. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + LISTs in which the value has a data size of 1000 Bytes. After pre-loading the data + it issues LPOP and RPOP commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' resources: requests: memory: 10g + dataset_name: 1Mkeys-list-lpop-rpop-with-1KiB-values tested-groups: - list tested-commands: @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "LPOP __key__" --command-key-pattern="R" --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --command "LPOP __key__" --command-key-pattern="R" + --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 55 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml index 36781c7c..5eda13f5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading LISTs in which the value has a data size of 10 Bytes. After pre-loading the data it issues LPOP and RPOP commands. +description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading + LISTs in which the value has a data size of 10 Bytes. After pre-loading the data + it issues LPOP and RPOP commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1Mkeys-list-rpoplpush-with-10B-values tested-groups: - list tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "RPOPLPUSH __key__ myotherlist" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "RPOPLPUSH __key__ myotherlist" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 55 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml index bcb6550e..f0444c4c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--pipeline" "10" "--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--pipeline" "10" "--data-size" "1000" --command "HSET + __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 + __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml index 5c026780..9eef207a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--data-size" "1000" --command "HSET __key__ field1 __data__ + field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml index 4c246b51..2899fedc 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES with 5 fields each. Each field value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading HASHES + with 5 fields each. Each field value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 "--data-size" "1000" --command "HMSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 180 "--data-size" "1000" --command "HMSET __key__ field1 + __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 20 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-rpush-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-rpush-with-10B-values.yml index 0edb428e..777f6812 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-rpush-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-rpush-with-10B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-list-rpush-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "RPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "RPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml index ad2aba16..d0425ae6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-list-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml index 36392914..94aa4a5a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-list-with-10B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --pipeline 10 --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --pipeline 10 --command "LPUSH __key__ __data__" + --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 + -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml index ede35e1e..fc3434ea 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-10B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-list-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml index 6a256ceb..5b2730f1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-list-with-1KiB-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-list-with-1KiB-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs in which the value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading LISTs + in which the value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --command "LPUSH __key__ __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 38 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits-pipeline-10.yml index 636e2a30..733bc658 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs with 100 integer elements with 19 digits each. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs + with 100 integer elements with 19 digits each. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,38 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --test-time 180 -c 50 -t 4 --command "SADD __key__ 1234567890123456789 9876543210987654321 5647382910564738291 8192736450819273645 3456789012345678901 7890123456789012345 2468135792468135792 1357924680135792468 9753186420975318642 6420975318642097531 8642097531864209753 1975308642197530864 5308641975308641975 0864197530864197530 4197530864197530864 7530864197530864197 3086419753086419753 0641975308641975308 9753086419753086419 5308641975308641975 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 3086419753086419753 6419753086419753086 9753086419753086419 5308641975308641975 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 3086419753086419753 6419753086419753086 2975318642097531864 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --pipeline 10 --test-time 180 -c 50 -t 4 --command "SADD __key__ 1234567890123456789 + 9876543210987654321 5647382910564738291 8192736450819273645 3456789012345678901 + 7890123456789012345 2468135792468135792 1357924680135792468 9753186420975318642 + 6420975318642097531 8642097531864209753 1975308642197530864 5308641975308641975 + 0864197530864197530 4197530864197530864 7530864197530864197 3086419753086419753 + 0641975308641975308 9753086419753086419 5308641975308641975 1975308641975308641 + 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 + 3086419753086419753 6419753086419753086 9753086419753086419 5308641975308641975 + 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 + 7530864197530864197 3086419753086419753 6419753086419753086 2975318642097531864 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975" --command-key-pattern="P" --key-minimum=1 + --key-maximum 1000000 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits.yml index 782d3b40..9bbda817 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-19-digits -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs with 100 integer elements with 19 digits each. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs + with 100 integer elements with 19 digits each. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,38 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 -c 50 -t 4 --command "SADD __key__ 1234567890123456789 9876543210987654321 5647382910564738291 8192736450819273645 3456789012345678901 7890123456789012345 2468135792468135792 1357924680135792468 9753186420975318642 6420975318642097531 8642097531864209753 1975308642197530864 5308641975308641975 0864197530864197530 4197530864197530864 7530864197530864197 3086419753086419753 0641975308641975308 9753086419753086419 5308641975308641975 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 3086419753086419753 6419753086419753086 9753086419753086419 5308641975308641975 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 3086419753086419753 6419753086419753086 2975318642097531864 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 8642097531864209753 1864209753186420975" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --test-time 180 -c 50 -t 4 --command "SADD __key__ 1234567890123456789 + 9876543210987654321 5647382910564738291 8192736450819273645 3456789012345678901 + 7890123456789012345 2468135792468135792 1357924680135792468 9753186420975318642 + 6420975318642097531 8642097531864209753 1975308642197530864 5308641975308641975 + 0864197530864197530 4197530864197530864 7530864197530864197 3086419753086419753 + 0641975308641975308 9753086419753086419 5308641975308641975 1975308641975308641 + 8641975308641975308 4197530864197530864 0864197530864197530 7530864197530864197 + 3086419753086419753 6419753086419753086 9753086419753086419 5308641975308641975 + 1975308641975308641 8641975308641975308 4197530864197530864 0864197530864197530 + 7530864197530864197 3086419753086419753 6419753086419753086 2975318642097531864 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975 5186420975318642097 9753186420975318642 + 3186420975318642097 7531864209753186420 0975318642097531864 4209753186420975318 + 8642097531864209753 1864209753186420975" --command-key-pattern="P" --key-minimum=1 + --key-maximum 1000000 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml index 6f2aa74f..a55ae313 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs with 100 integer elements. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs + with 100 integer elements. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,21 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --test-time 180 -c 50 -t 4 --command "SADD __key__ 436858 768277 10664 860016 865292 841848 313147 896678 386308 977048 203069 283373 593503 457419 169542 391186 130304 916639 453967 273773 589383 657683 182813 641487 580095 195884 372142 774005 768470 95729 556839 771113 432139 613472 528415 174665 155343 215707 753892 81624 199200 877732 358153 337683 24664 481128 356011 28176 535519 724263 780697 435661 3623 6998 985912 696150 913066 171765 808279 608289 187563 300496 104333 684239 434669 111037 928553 714514 606168 190478 772363 393219 243921 549032 624950 743846 957491 864902 345918 846332 42207 243593 125622 915607 523476 226892 773003 840853 792775 582050 702242 194856 270254 617201 454742 543414 960526 136178 43558 172112" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --pipeline 10 --test-time 180 -c 50 -t 4 --command "SADD __key__ 436858 + 768277 10664 860016 865292 841848 313147 896678 386308 977048 203069 283373 593503 + 457419 169542 391186 130304 916639 453967 273773 589383 657683 182813 641487 580095 + 195884 372142 774005 768470 95729 556839 771113 432139 613472 528415 174665 155343 + 215707 753892 81624 199200 877732 358153 337683 24664 481128 356011 28176 535519 + 724263 780697 435661 3623 6998 985912 696150 913066 171765 808279 608289 187563 + 300496 104333 684239 434669 111037 928553 714514 606168 190478 772363 393219 243921 + 549032 624950 743846 957491 864902 345918 846332 42207 243593 125622 915607 523476 + 226892 773003 840853 792775 582050 702242 194856 270254 617201 454742 543414 960526 + 136178 43558 172112" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 + --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml index e0ef9f48..a35a99fb 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-set-intset-with-100-elements.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-set-intset-with-100-elements -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs with 100 integer elements. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading SETs + with 100 integer elements. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,20 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 -c 50 -t 4 --command "SADD __key__ 436858 768277 10664 860016 865292 841848 313147 896678 386308 977048 203069 283373 593503 457419 169542 391186 130304 916639 453967 273773 589383 657683 182813 641487 580095 195884 372142 774005 768470 95729 556839 771113 432139 613472 528415 174665 155343 215707 753892 81624 199200 877732 358153 337683 24664 481128 356011 28176 535519 724263 780697 435661 3623 6998 985912 696150 913066 171765 808279 608289 187563 300496 104333 684239 434669 111037 928553 714514 606168 190478 772363 393219 243921 549032 624950 743846 957491 864902 345918 846332 42207 243593 125622 915607 523476 226892 773003 840853 792775 582050 702242 194856 270254 617201 454742 543414 960526 136178 43558 172112" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --test-time 180 -c 50 -t 4 --command "SADD __key__ 436858 768277 10664 + 860016 865292 841848 313147 896678 386308 977048 203069 283373 593503 457419 169542 + 391186 130304 916639 453967 273773 589383 657683 182813 641487 580095 195884 372142 + 774005 768470 95729 556839 771113 432139 613472 528415 174665 155343 215707 753892 + 81624 199200 877732 358153 337683 24664 481128 356011 28176 535519 724263 780697 + 435661 3623 6998 985912 696150 913066 171765 808279 608289 187563 300496 104333 + 684239 434669 111037 928553 714514 606168 190478 772363 393219 243921 549032 624950 + 743846 957491 864902 345918 846332 42207 243593 125622 915607 523476 226892 773003 + 840853 792775 582050 702242 194856 270254 617201 454742 543414 960526 136178 43558 + 172112" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml index 4d12f6ea..45b0c34a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs in which the value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs + in which the value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ MAXLEN ~ 1 * field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ MAXLEN + ~ 1 * field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 66 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml index 2e02169b..12786e4d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs in which the value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs + in which the value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "XADD __key__ MAXLEN ~ 1 * field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "XADD __key__ MAXLEN ~ 1 * field __data__" + --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 + -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 66 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml index d9b0cbc8..0dbc9114 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs in which the 5 field values have a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs + in which the 5 field values have a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,14 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ MAXLEN ~ 5 * field __data__ field __data__ field __data__ field __data__ field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ MAXLEN + ~ 5 * field __data__ field __data__ field __data__ field __data__ field __data__" + --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 + -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 66 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml index 7a67e7bc..1d210795 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs in which the 5 field values have a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STREAMs + in which the 5 field values have a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "XADD __key__ MAXLEN ~ 5 * field __data__ field __data__ field __data__ field __data__ field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --command "XADD __key__ MAXLEN ~ 5 * field __data__ + field __data__ field __data__ field __data__ field __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 66 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml index b9183dc2..fbeb4d3e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" "--data-size" "100" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--pipeline" "10" "--data-size" "100" --ratio 1:0 --key-pattern P:P + --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml index fa3778dc..67e43662 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-100B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-100B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -13,14 +14,14 @@ tested-commands: - set redis-topologies: - oss-standalone - build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' @@ -28,7 +29,6 @@ clientconfig: scalability: mode: '1:1' max_processes: 21 - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml index 49d2bb82..2db81029 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" "--data-size" "10" --distinct-client-seed --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 10 -t 10 --hide-histogram' + arguments: '"--pipeline" "10" "--data-size" "10" --distinct-client-seed --ratio + 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c + 10 -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml index 51b84f42..c60a5c86 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix -description: memtier_benchmark, 1M keys, string SET, 10B value size, pipeline=100, no key prefix +description: memtier_benchmark, 1M keys, string SET, 10B value size, pipeline=100, + no key prefix dbconfig: configuration-parameters: save: '""' @@ -9,6 +10,7 @@ dbconfig: resources: requests: memory: 1g + dataset_name: 1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ redis-topologies: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "SET __key__ __data__" --command-key-pattern="R" --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' + arguments: '"--data-size" "10" --command "SET __key__ __data__" --command-key-pattern="R" + --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100.yml index 07e3bef2..ec2762a6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" "--data-size" "10" --distinct-client-seed --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 10 -t 10 --hide-histogram' + arguments: '"--pipeline" "100" "--data-size" "10" --distinct-client-seed --ratio + 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c + 10 -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-50.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-50.yml index 98a0c782..9956d374 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-50.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-50.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-50 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "50" "--data-size" "10" --distinct-client-seed --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 10 -t 10 --hide-histogram' + arguments: '"--pipeline" "50" "--data-size" "10" --distinct-client-seed --ratio + 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c + 10 -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-500.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-500.yml index 45e6edd7..a79896ac 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-500.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-500.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-500 -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "500" "--data-size" "10" --distinct-client-seed --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c 10 -t 10 --hide-histogram' + arguments: '"--pipeline" "500" "--data-size" "10" --distinct-client-seed --ratio + 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 120 -c + 10 -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml index 047d6b8a..21ca2892 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 10 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 10 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "10" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml index 4204c7f6..fadafd5a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-1KiB-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-1KiB-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 1000 Bytes. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml index afee5707..1bb6d55c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-20KiB-values.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-string-with-20KiB-values -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs in which the value has a data size of 20K Bytes. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading STRINGs + in which the value has a data size of 20K Bytes. dbconfig: configuration-parameters: save: '""' @@ -13,14 +14,14 @@ tested-commands: - set redis-topologies: - oss-standalone - build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "20000" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' + arguments: '"--data-size" "20000" --ratio 1:0 --key-pattern P:P --key-minimum=1 + --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' @@ -28,7 +29,6 @@ clientconfig: scalability: mode: '1:1' max_processes: 21 - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml index 317329c8..023a2675 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs with encoding:listpack with 100 elements. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs + with encoding:listpack with 100 elements. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,71 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 0.652540306855235 UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg 0.8731899671198792 RKlVyoHMTvZcoh 0.0785627468533846 VZWJQlqLBHicktajowIvkyuaddTC 0.7688563664469605 YaXTxnRGWhENdaOFuXNAJmx 0.0033318113277969186 JjfFkvonkksjIfHS 0.49606648747577575 Q 0.8234766164292862 MZgqGWzeYWDAlplbxvlzllKR 0.42687597903639085 AGSAuhePDVmONKmViHovKsiIGSXQZdqX 0.34912978268081996 ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr 0.15838599188422475 UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw 0.4376432899068222 cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE 0.5536939917085721 uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln 0.403546330051068 kRUDWaPmeYXeJZhgqKpnroFxUSCQ 0.8808108541089766 PCGgHbGIRxpzFRfADhupCtBKhknUNyqK 0.23044636914343264 OaHUUrbZEvSOmYOtbUzxnJq 0.6404180580960533 qJabjKLYYivniNNtGsbnBzRLzYP 0.6907030016224224 KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp 0.24900135884008867 bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL 0.7928656841898908 NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj 0.9331302297178864 TcZibcjyBLAbljRGHjFgwVeVjbeZwi 0.640319798434186 nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg 0.5239886233297175 DZGleQLgYgAjWUcCOhzqsi 0.6136266546940706 ZVlOgBjrpZhQuQzJYVLYqnxytasTT 0.6591139297465682 AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV 0.4468461455464968 pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL 0.5614231865616031 KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA 0.022487789155224203 qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW 0.8510804209364501 QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY 0.43460695876638156 WcTDiiDHQwNoubgkihXThvM 0.5610492156901229 XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ 0.7513407089150304 MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm 0.09175823221394674 vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS 0.8586634748104288 wyThKKWAeRg 0.36952587840155204 cRkudmpGSSMUnPOMhPSzjQ 0.538356756374977 TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev 0.5218317459277027 N 0.658938125456635 mAI 0.8474868095237909 JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV 0.20143282352735015 WjaRWpmPlWwPuepbXywfDmqIEPWnBh 0.23967093347793234 ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk 0.8108325344648399 WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl 0.1322111892750637 dfVVGlvVTMufbfSsy 0.2285660170875491 DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn 0.9396586731821924 NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq 0.32374056012496966 TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj 0.9080986140709963 IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb 0.3129458198716534 LJFPbCuN 0.39349745859330765 YTPdFVszdCVVgGGHKqoQxfjU 0.14704886640549086 fOFwwDNEsxjfpkUrwd 0.9168814654086035 rJSASiFxeYIINRbbgTBqPbATrcKOP 0.3100306836090321 VKKOyHveatcnmQR 0.2370937718635434 OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO 0.4941647120371836 neeyLswlmLnZXSCDtFx 0.269336828778751 UuIrk 0.12151325035284255 FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu 0.0035001439463812067 aThlZZWlDITljruiWa 0.5009568203132024 TBszlGVnMdDvMOLiCysTjjANuFqeq 0.4783242512285928 dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC 0.531664059031722 reqfWtmvctIfWtqVEuaTEGfarDa 0.47961187976147 CBvTozpAXrLpS 0.10226598211977789 eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj 0.721486119508813 nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa 0.3044462915617381 AMu 0.8380361220680647 tQiutM 0.7791893412340167 jcKQrBTFeuiuHCprihKx 0.9140067046543505 bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI 0.6755477551341951 sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc 0.843803368180551 WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm 0.4683803962889672 CqNaseFeIzhsgZdZDgySGfNawLz 0.300477038321727 pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg 0.6782593142253811 bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa 0.09916181882671649 jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM 0.031870198089671176 YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU 0.9753495730511261 OHVmNYCiDZFlkmsqhwgc 0.6796131843206142 CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM 0.41149806297291536 MGFGt 0.0635854843880973 xVozQKiljlffdYDherQcdYdEmEX 0.17349539011413317 SORWOElEDHqZuOvYslqzY 0.6957717601786134 XNVNKDBXRoFHDAu 0.514568844593022 GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn 0.5054082476784039 YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk 0.5791117949403571 PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF 0.6869490812905924 EDFLipKWqONzJ 0.5858117779265328 ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp 0.3328807181469634 kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ 0.5593178033061493 BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO 0.9568394270185203 XrsvMeAof 0.2895493213801318 eVIlCARlsKEygkqngxlVoJIhthE 0.36404485659899855 tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi 0.6751249599564046 zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg 0.4002349143471098 blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY 0.4373588125087955 LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC 0.8323339473420782 TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ 0.7464672802658118 GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu 0.15234267491477727 bTapHmxvqZNdGNP 0.42610519579163275 DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI 0.05073435890699274 uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq 0.8053618509879708 UYuKZw 0.21335197746306034 OqRQLePoVHjfSoZV 0.9955843393406656 s" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 0.652540306855235 + UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg 0.8731899671198792 RKlVyoHMTvZcoh + 0.0785627468533846 VZWJQlqLBHicktajowIvkyuaddTC 0.7688563664469605 YaXTxnRGWhENdaOFuXNAJmx + 0.0033318113277969186 JjfFkvonkksjIfHS 0.49606648747577575 Q 0.8234766164292862 + MZgqGWzeYWDAlplbxvlzllKR 0.42687597903639085 AGSAuhePDVmONKmViHovKsiIGSXQZdqX + 0.34912978268081996 ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr 0.15838599188422475 + UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw 0.4376432899068222 cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE + 0.5536939917085721 uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln 0.403546330051068 + kRUDWaPmeYXeJZhgqKpnroFxUSCQ 0.8808108541089766 PCGgHbGIRxpzFRfADhupCtBKhknUNyqK + 0.23044636914343264 OaHUUrbZEvSOmYOtbUzxnJq 0.6404180580960533 qJabjKLYYivniNNtGsbnBzRLzYP + 0.6907030016224224 KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp 0.24900135884008867 + bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL 0.7928656841898908 + NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj 0.9331302297178864 TcZibcjyBLAbljRGHjFgwVeVjbeZwi + 0.640319798434186 nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg 0.5239886233297175 + DZGleQLgYgAjWUcCOhzqsi 0.6136266546940706 ZVlOgBjrpZhQuQzJYVLYqnxytasTT 0.6591139297465682 + AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV 0.4468461455464968 + pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL 0.5614231865616031 KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA + 0.022487789155224203 qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW + 0.8510804209364501 QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY 0.43460695876638156 WcTDiiDHQwNoubgkihXThvM + 0.5610492156901229 XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ 0.7513407089150304 + MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm 0.09175823221394674 vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS + 0.8586634748104288 wyThKKWAeRg 0.36952587840155204 cRkudmpGSSMUnPOMhPSzjQ 0.538356756374977 + TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev 0.5218317459277027 N 0.658938125456635 + mAI 0.8474868095237909 JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV 0.20143282352735015 + WjaRWpmPlWwPuepbXywfDmqIEPWnBh 0.23967093347793234 ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk + 0.8108325344648399 WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl 0.1322111892750637 + dfVVGlvVTMufbfSsy 0.2285660170875491 DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn + 0.9396586731821924 NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq 0.32374056012496966 TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj + 0.9080986140709963 IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb 0.3129458198716534 + LJFPbCuN 0.39349745859330765 YTPdFVszdCVVgGGHKqoQxfjU 0.14704886640549086 fOFwwDNEsxjfpkUrwd + 0.9168814654086035 rJSASiFxeYIINRbbgTBqPbATrcKOP 0.3100306836090321 VKKOyHveatcnmQR + 0.2370937718635434 OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO 0.4941647120371836 neeyLswlmLnZXSCDtFx + 0.269336828778751 UuIrk 0.12151325035284255 FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu + 0.0035001439463812067 aThlZZWlDITljruiWa 0.5009568203132024 TBszlGVnMdDvMOLiCysTjjANuFqeq + 0.4783242512285928 dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC 0.531664059031722 + reqfWtmvctIfWtqVEuaTEGfarDa 0.47961187976147 CBvTozpAXrLpS 0.10226598211977789 + eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj 0.721486119508813 nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa + 0.3044462915617381 AMu 0.8380361220680647 tQiutM 0.7791893412340167 jcKQrBTFeuiuHCprihKx + 0.9140067046543505 bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI + 0.6755477551341951 sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc 0.843803368180551 + WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm 0.4683803962889672 CqNaseFeIzhsgZdZDgySGfNawLz + 0.300477038321727 pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg 0.6782593142253811 + bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa 0.09916181882671649 jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM + 0.031870198089671176 YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU 0.9753495730511261 OHVmNYCiDZFlkmsqhwgc + 0.6796131843206142 CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM 0.41149806297291536 + MGFGt 0.0635854843880973 xVozQKiljlffdYDherQcdYdEmEX 0.17349539011413317 SORWOElEDHqZuOvYslqzY + 0.6957717601786134 XNVNKDBXRoFHDAu 0.514568844593022 GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn + 0.5054082476784039 YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk 0.5791117949403571 + PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF 0.6869490812905924 EDFLipKWqONzJ + 0.5858117779265328 ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp + 0.3328807181469634 kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ 0.5593178033061493 + BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO 0.9568394270185203 XrsvMeAof + 0.2895493213801318 eVIlCARlsKEygkqngxlVoJIhthE 0.36404485659899855 tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi + 0.6751249599564046 zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg 0.4002349143471098 + blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY 0.4373588125087955 + LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC 0.8323339473420782 TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ + 0.7464672802658118 GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu 0.15234267491477727 + bTapHmxvqZNdGNP 0.42610519579163275 DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI + 0.05073435890699274 uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq 0.8053618509879708 + UYuKZw 0.21335197746306034 OqRQLePoVHjfSoZV 0.9955843393406656 s" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1000000 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml index f1fbe691..b6b25a4d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs with 10 elements. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs + with 10 elements. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,15 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 0.306275 lysbgqqfqw 0.486004 mtccjerdon 0.941626 jekkafodvk 0.602656 nmgxcctxpn 0.630771 vyqqkuszzh 0.406379 pytrnqdhvs 0.521814 oguwnmniig 0.182854 gekntrykfh 0.657658 nhfnbxqgol 0.218066 cgoeihlnei" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 0.306275 lysbgqqfqw + 0.486004 mtccjerdon 0.941626 jekkafodvk 0.602656 nmgxcctxpn 0.630771 vyqqkuszzh + 0.406379 pytrnqdhvs 0.521814 oguwnmniig 0.182854 gekntrykfh 0.657658 nhfnbxqgol + 0.218066 cgoeihlnei" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 + --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml index 9d12d297..b18838d1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score -description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs with 10 elements. +description: Runs memtier_benchmark, for a keyspace length of 1M keys loading ZSETs + with 10 elements. dbconfig: configuration-parameters: save: '""' @@ -19,12 +20,14 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 1 lysbgqqfqw 2 mtccjerdon 3 jekkafodvk 4 nmgxcctxpn 5 vyqqkuszzh 6 pytrnqdhvs 7 oguwnmniig 8 gekntrykfh 9 nhfnbxqgol 10 cgoeihlnei" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --hide-histogram + arguments: --test-time 180 -c 50 -t 4 --command "ZADD __key__ 1 lysbgqqfqw 2 mtccjerdon + 3 jekkafodvk 4 nmgxcctxpn 5 vyqqkuszzh 6 pytrnqdhvs 7 oguwnmniig 8 gekntrykfh + 9 nhfnbxqgol 10 cgoeihlnei" --command-key-pattern="P" --key-minimum=1 --key-maximum + 1000000 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml index 38219031..0c94b14b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1 Bytes for each key initially. Then we append to the same keys with values ranging from 1 to 100B. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1 Bytes for each key initially. Then we append to the same keys with values + ranging from 1 to 100B. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-append-1-100B-pipeline-10 tested-commands: - append redis-topologies: @@ -23,12 +27,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --data-size-range=1-100 --command "APPEND __key__ __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --data-size-range=1-100 --command "APPEND + __key__ __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 + -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml index 72c46d28..9f107586 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-append-1-100B -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1 Bytes for each key initially. Then we append to the same keys with values ranging from 1 to 100B. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1 Bytes for each key initially. Then we append to the same keys with values + ranging from 1 to 100B. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-append-1-100B tested-commands: - append redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --data-size-range=1-100 --command "APPEND __key__ __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --data-size-range=1-100 --command "APPEND __key__ __data__" + --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml index 8466ebb3..4476346b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-decr -description: Runs memtier_benchmark, for a keyspace length of 1M keys testing use embedded string object encoding on the string and doing decr command. +description: Runs memtier_benchmark, for a keyspace length of 1M keys testing use + embedded string object encoding on the string and doing decr command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "SET __key__ 9223372036854775807" --command-key-pattern="P" -n 5000 --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram' + arguments: ' --command "SET __key__ 9223372036854775807" --command-key-pattern="P" + -n 5000 --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-decr tested-commands: - decr redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "DECR __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 4 -t 4 --hide-histogram + arguments: --test-time 180 --command "DECR __key__" --command-key-pattern="R" --key-minimum=1 + --key-maximum 1000000 -c 4 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 98 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml index 0abf4988..21366111 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-100B-pipeline-10 tested-commands: - get redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--pipeline 10 --data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180' + arguments: --pipeline 10 --data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t + 4 --hide-histogram --test-time 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml index 78a25d41..105aec44 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-100B -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-100B tested-commands: - get redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180' + arguments: --data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml index a17577c7..caf9155c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" + "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" + "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B-pipeline-10 tested-commands: - get redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "10" --distinct-client-seed "--data-size" "10" --ratio 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' + arguments: '"--pipeline" "10" --distinct-client-seed "--data-size" "10" --ratio + 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index 78dab447..2d6d98b7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix -description: memtier_benchmark, 1M keys, string GET, 10B value size, pipeline=100, no key prefix +description: memtier_benchmark, 1M keys, string GET, 10B value size, pipeline=100, + no key prefix dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B-pipeline-100-nokeyprefix tested-groups: - string tested-commands: @@ -23,10 +27,10 @@ redis-topologies: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "GET __key__" --command-key-pattern="R" --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' + arguments: '"--data-size" "10" --command "GET __key__" --command-key-pattern="R" + --key-prefix="" -c 50 -t 2 --pipeline 100 --hide-histogram --test-time 180' resources: requests: cpus: '3' memory: 2g - priority: 33 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml index 88463051..785e4d92 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B-pipeline-100 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" + "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" + "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B-pipeline-100 tested-commands: - get redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "100" --distinct-client-seed "--data-size" "10" --ratio 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' + arguments: '"--pipeline" "100" --distinct-client-seed "--data-size" "10" --ratio + 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml index 315e7c26..1d54f49e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B-pipeline-50 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" + "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" + "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B-pipeline-50 tested-commands: - get redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "50" --distinct-client-seed "--data-size" "10" --ratio 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' + arguments: '"--pipeline" "50" --distinct-client-seed "--data-size" "10" --ratio + 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml index 72efc843..89dd328f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B-pipeline-500 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" + "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" + "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B-pipeline-500 tested-commands: - get redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--pipeline" "500" --distinct-client-seed "--data-size" "10" --ratio 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' + arguments: '"--pipeline" "500" --distinct-client-seed "--data-size" "10" --ratio + 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml index 516c999f..b015ead0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-10B -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 10 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 10 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-10B tested-commands: - get redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --distinct-client-seed --ratio 0:1 --key-pattern R:R -c 10 -t 10 --hide-histogram --test-time 120' + arguments: '"--data-size" "10" --distinct-client-seed --ratio 0:1 --key-pattern + R:R -c 10 -t 10 --hide-histogram --test-time 120' resources: requests: cpus: '10' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml index 8011bc3a..5b63bc23 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1000 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1000 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000' + arguments: --data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern + P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000 resources: requests: memory: 2g + dataset_name: 1Mkeys-string-get-1KiB-pipeline-10 tested-commands: - get redis-topologies: @@ -23,12 +26,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --data-size 1000 --ratio 0:1 --distinct-client-seed --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum 1000000 + arguments: --pipeline 10 --data-size 1000 --ratio 0:1 --distinct-client-seed --key-pattern + R:R -c 25 -t 4 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum + 1000000 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml index d153294c..9d9dd51e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-1KiB -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1000 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1000 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000' + arguments: --data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern + P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000 resources: requests: memory: 2g + dataset_name: 1Mkeys-string-get-1KiB tested-commands: - get redis-topologies: @@ -23,12 +26,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 1 --data-size 1000 --ratio 0:1 --distinct-client-seed --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum 1000000 + arguments: --pipeline 1 --data-size 1000 --ratio 0:1 --distinct-client-seed --key-pattern + R:R -c 25 -t 4 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum + 1000000 resources: requests: cpus: '4' memory: 2g - tested-groups: - string -priority: 1 \ No newline at end of file +priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml index cd8ccb98..94bfe57c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-32B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 32 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 32 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-32B-pipeline-10 tested-commands: - get redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--pipeline 10 --data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180' + arguments: --pipeline 10 --data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 + --hide-histogram --test-time 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml index 9d67d176..4dd7aa8d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-get-32B -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 32 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 32 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-get-32B tested-commands: - get redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram --test-time 180' + arguments: --data-size 32 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml index 57098f5d..842d81e6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-incr-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incr of 1. +description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incr of + 1. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-incr-pipeline-10 tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "INCR __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "INCR __key__" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml index 7b2c9056..a077b7e3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-incrby-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby of 1. +description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby + of 1. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-incrby-pipeline-10 tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "INCRBY __key__ 1" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "INCRBY __key__ 1" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml index 89498a77..3c24822b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-incrby -description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby of 1. +description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby + of 1. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-incrby tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --command "INCRBY __key__ 1" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --command "INCRBY __key__ 1" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml index 2eea19cd..63e20e61 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby of 0.01. +description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby + of 0.01. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-incrbyfloat-pipeline-10 tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "INCRBYFLOAT __key__ 0.01" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "INCRBYFLOAT __key__ 0.01" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml index 02291212..5edd67d4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-incrbyfloat -description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby of 0.01. +description: Runs memtier_benchmark, for a keyspace length of 1M keys doing incrby + of 0.01. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-incrbyfloat tested-groups: - string tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --command "INCRBYFLOAT __key__ 0.01" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --command "INCRBYFLOAT __key__ 0.01" --command-key-pattern="R" + --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml index 1de3e44c..d28470ff 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys int encoded, checking STRLEN command performance. +description: Runs memtier_benchmark, for a keyspace length of 1M keys int encoded, + checking STRLEN command performance. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "SET __key__ __key__" --key-prefix "" --command-key-pattern="S" --key-minimum=2 --key-maximum 1000000 -c 1 -t 1 --pipeline 100 --hide-histogram -n allkeys' + arguments: ' --command "SET __key__ __key__" --key-prefix "" --command-key-pattern="S" --key-minimum=2 + --key-maximum 1000000 -c 1 -t 1 --pipeline 100 --hide-histogram -n allkeys' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-int-encoding-strlen-pipeline-10 tested-commands: - strlen redis-topologies: @@ -23,12 +26,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "STRLEN __key__" --key-prefix "" --command-key-pattern="G" --key-minimum=2 --key-maximum 1000000 -c 50 -t 4 --pipeline 10 --hide-histogram --test-time 60 + arguments: --command "STRLEN __key__" --key-prefix "" --command-key-pattern="G" --key-minimum=2 + --key-maximum 1000000 -c 50 -t 4 --pipeline 10 --hide-histogram --test-time 60 resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 98 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml index 0a88ed62..aeb4da6f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mget-1KiB -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 1000 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 1000 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --key-maximum 1000000 --key-prefix "" --command="SET __key__ __data__" --command-key-pattern P --key-minimum 1 --hide-histogram -t 2 -c 100 + arguments: --data-size 1000 --key-maximum 1000000 --key-prefix "" --command="SET + __key__ __data__" --command-key-pattern P --key-minimum 1 --hide-histogram + -t 2 -c 100 resources: requests: memory: 2g + dataset_name: 1Mkeys-string-mget-1KiB tested-commands: - mget redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-prefix "" --command "MGET __key__ 1 2 3 4 5 6 7 8 9" -c 50 -t 2 --hide-histogram --test-time 180 + arguments: --key-prefix "" --command "MGET __key__ 1 2 3 4 5 6 7 8 9" -c 50 -t 2 + --hide-histogram --test-time 180 resources: requests: cpus: '2' memory: 2g - tested-groups: - string priority: 13 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml index d63f2e8b..33f620f4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes, expiration, and pipeline 10 for community/youtuber use-case. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 100 Bytes, expiration, and pipeline 10 for community/youtuber + use-case. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' + arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern + P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10 tested-commands: - setex - get @@ -27,10 +31,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' + arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ + EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml index af3a0730..4fe61cc3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes and expiration for community/youtuber use-case. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 100 Bytes and expiration for community/youtuber + use-case. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' + arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern + P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-expire tested-commands: - setex - get @@ -27,10 +31,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --distinct-client-seed --command "SET __key__ __data__ + EX 10" --command "GET __key__" --key-pattern R:R --key-minimum=1 --key-maximum + 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml index e53c0fd9..c4d0940f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes and pipeline 10. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 100 Bytes and pipeline 10. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10 tested-commands: - set - get @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' + arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram + --pipeline 10' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml index be66abaf..00452d68 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 100 Bytes. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 100 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B tested-commands: - set - get @@ -26,10 +30,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' + arguments: '"--data-size" "100" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml index a45cb433..2a76b36f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 1000 Bytes and pipeline 10. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 1000 Bytes and pipeline 10. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10 tested-commands: - set - get @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' + arguments: '"--data-size" "1000" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram + --pipeline 10' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml index 7964a573..ce6909af 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml @@ -1,7 +1,9 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 1000 Bytes. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 1000 Bytes. dbconfig: + dataset_name: 1Mkeys-string-mixed-50-50-set-get-1KB configuration-parameters: save: '""' check: @@ -9,7 +11,9 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g @@ -26,10 +30,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' + arguments: '"--data-size" "1000" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml index abe5d75d..64863bda 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 32 Bytes and pipeline 10. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 32 Bytes and pipeline 10. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10 tested-commands: - set - get @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' + arguments: '"--data-size" "32" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram + --pipeline 10' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml index d0d988d2..ca18df12 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 32 Bytes. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 32 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-32B tested-commands: - set - get @@ -26,10 +30,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "32" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' + arguments: '"--data-size" "32" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml index a44c6ec5..bce9f125 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 512 Bytes and pipeline 10. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 512 Bytes and pipeline 10. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10 tested-commands: - set - get @@ -26,10 +30,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram --pipeline 10' + arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram + --pipeline 10' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml index 2f4c0499..712e675a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B -description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 512 Bytes. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% + GETs (mixed) with a data size of 512 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" "allkeys"' + arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-512B tested-commands: - set - get @@ -26,10 +30,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' + arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:1 --key-pattern + R:R --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 25 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml index 848cafe2..cdd87162 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns -description: Runs memtier_benchmark, for a keyspace of 1M keys with 400 clients doing 50% SETs and 50% GETs (mixed) with very short expiration time, in which the value has a data size of 240 Bytes. +description: Runs memtier_benchmark, for a keyspace of 1M keys with 400 clients doing + 50% SETs and 50% GETs (mixed) with very short expiration time, in which the value + has a data size of 240 Bytes. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '--pipeline 100 --data-size 240 --command "SET __key__ __data__ EX 5" --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000' + arguments: --pipeline 100 --data-size 240 --command "SET __key__ __data__ EX 5" + --command-key-pattern P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum + 1000000 resources: requests: memory: 1g + dataset_name: 1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns tested-commands: - set - get @@ -29,10 +34,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 240 --command "SET __key__ __data__ EX 5" --command "GET __key__" -c 50 -t 8 --hide-histogram --test-time 120 --key-maximum 1000000 --key-minimum 1 + arguments: --data-size 240 --command "SET __key__ __data__ EX 5" --command "GET + __key__" -c 50 -t 8 --hide-histogram --test-time 120 --key-maximum 1000000 --key-minimum + 1 resources: requests: cpus: '8' memory: 2g - priority: 11 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml index 0190587f..0c3c19bc 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-set-with-ex-100B-pipeline-10 tested-commands: - set redis-topologies: @@ -23,7 +26,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "SET __key__ __value__ EX 3600" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "SET __key__ __value__ EX 3600" + --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml index 9c97b9fb..a492cb8f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-setex-100B-pipeline-10 tested-commands: - setex redis-topologies: @@ -23,7 +26,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "SETEX __key__ 3600 __value__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "SETEX __key__ 3600 __value__" + --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml index fc970976..885fe18f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-setrange-100B-pipeline-10 tested-commands: - setrange redis-topologies: @@ -23,12 +26,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --data-size-range=1-95 --command "SETRANGE __key__ 5 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --data-size-range=1-95 --command "SETRANGE + __key__ 5 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 + -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml index 4200f2ff..f8c98af6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1Mkeys-string-setrange-100B -description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data size of 100 Bytes for each key. +description: Runs memtier_benchmark, for a keyspace length of 1M keys with a data + size of 100 Bytes for each key. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" + "-t" "2" "--hide-histogram" "--key-minimum" "1"' resources: requests: memory: 1g + dataset_name: 1Mkeys-string-setrange-100B tested-commands: - setrange redis-topologies: @@ -23,12 +26,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --data-size-range=1-95 --command "SETRANGE __key__ 5 __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --data-size-range=1-95 --command "SETRANGE __key__ 5 + __data__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - tested-groups: - string priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml index 899c834b..df3533ed 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml @@ -1,21 +1,26 @@ version: 0.4 name: memtier_benchmark-1key-100M-bits-bitmap-bitcount -description: Runs memtier_benchmark, for a keyspace length of 1 keys focusing on BITCOUNT performance. The bitmap has a size of 100M bits and approximately 2M bits are set. The size of it is ~15MB +description: Runs memtier_benchmark, for a keyspace length of 1 keys focusing on BITCOUNT + performance. The bitmap has a size of 100M bits and approximately 2M bits are set. + The size of it is ~15MB dbconfig: configuration-parameters: save: '""' check: keyspacelen: 1 init_commands: - - '"SETBIT" "users" "100000000" "1"' + - '"SETBIT" "users" "100000000" "1"' preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 100000000 --key-minimum 1 -n 10000 --key-prefix "" --command-key-pattern R --distinct-client-seed --pipeline 10 + arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 100000000 + --key-minimum 1 -n 10000 --key-prefix "" --command-key-pattern R --distinct-client-seed + --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-100M-bits-bitmap tested-commands: - bitcount tested-groups: @@ -28,10 +33,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "BITCOUNT users __key__ -1" --key-maximum 100000000 --key-minimum 1 --key-prefix "" --command-key-pattern R --distinct-client-seed --test-time 120 + arguments: --command "BITCOUNT users __key__ -1" --key-maximum 100000000 --key-minimum + 1 --key-prefix "" --command-key-pattern R --distinct-client-seed --test-time 120 resources: requests: cpus: '2' memory: 2g - priority: 19 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml index fffb0706..c1bbb3d3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml @@ -1,21 +1,26 @@ version: 0.4 name: memtier_benchmark-1key-1Billion-bits-bitmap-bitcount -description: Runs memtier_benchmark, for a keyspace length of 1 keys focusing on BITCOUNT performance. The bitmap has a size of 1 Billion bits and approximately 20M bits are set. The size of it is ~140MB +description: Runs memtier_benchmark, for a keyspace length of 1 keys focusing on BITCOUNT + performance. The bitmap has a size of 1 Billion bits and approximately 20M bits + are set. The size of it is ~140MB dbconfig: configuration-parameters: save: '""' check: keyspacelen: 1 init_commands: - - '"SETBIT" "users" "1000000000" "1"' + - '"SETBIT" "users" "1000000000" "1"' preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 1000000000 --key-minimum 1 -n 100000 --key-prefix "" --command-key-pattern R --distinct-client-seed --pipeline 10 + arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 1000000000 + --key-minimum 1 -n 100000 --key-prefix "" --command-key-pattern R --distinct-client-seed + --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-1Billion-bits-bitmap tested-commands: - bitcount tested-groups: @@ -28,10 +33,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command "BITCOUNT users __key__ -1" --key-maximum 1000000000 --key-minimum 1 --key-prefix "" --command-key-pattern R --distinct-client-seed --test-time 120 + arguments: --command "BITCOUNT users __key__ -1" --key-maximum 1000000000 --key-minimum + 1 --key-prefix "" --command-key-pattern R --distinct-client-seed --test-time 120 resources: requests: cpus: '2' memory: 2g - priority: 19 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml index c1785e2c..1c4e524c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-2-elements-geopos -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 2 elements and comes from the example of https://redis.io/docs/latest/commands/geopos, and we query it using GEOPOS command.' +description: Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key + contains 2 elements and comes from the example of https://redis.io/docs/latest/commands/geopos, + and we query it using GEOPOS command. dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,8 @@ dbconfig: requests: memory: 1g init_commands: - - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' + - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' + dataset_name: 1key-geo-2-elements tested-groups: - geo tested-commands: @@ -23,10 +26,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 50 -t 4 --command="GEOPOS Sicily Palermo Catania" --hide-histogram --test-time 120 + arguments: -c 50 -t 4 --command="GEOPOS Sicily Palermo Catania" --hide-histogram + --test-time 120 resources: requests: cpus: '4' memory: 2g - priority: 138 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml index 04d37ed3..73c076fe 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 2 elements and comes from the example of https://redis.io/docs/latest/commands/geosearch, and we query it using GEOSEARCH command.' +description: Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key + contains 2 elements and comes from the example of https://redis.io/docs/latest/commands/geosearch, + and we query it using GEOSEARCH command. dbconfig: configuration-parameters: save: '""' @@ -10,8 +12,9 @@ dbconfig: requests: memory: 1g init_commands: - - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' - - '"GEOADD" "Sicily" "12.758489" "38.788135" "edge1" "17.241510" "38.788135" "edge2"' + - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' + - '"GEOADD" "Sicily" "12.758489" "38.788135" "edge1" "17.241510" "38.788135" "edge2"' + dataset_name: 1key-geo-2-elements-geosearch-fromlonlat-withcoord tested-groups: - geo tested-commands: @@ -24,10 +27,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 50 -t 4 --command="GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC WITHCOORD WITHDIST" --hide-histogram --test-time 120 + arguments: -c 50 -t 4 --command="GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 + km ASC WITHCOORD WITHDIST" --hide-histogram --test-time 120 resources: requests: cpus: '4' memory: 2g - priority: 138 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml index 2c92993f..960ee9a9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEODIST command between 2 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEODIST command between + 2 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +12,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +25,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 -c 50 -t 4 --command="GEODIST key 1 2" --hide-histogram --test-time 180 + arguments: --pipeline 10 -c 50 -t 4 --command="GEODIST key 1 2" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 166 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml index cde25ae9..c13cdc5b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geodist -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEODIST command between 2 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEODIST command between + 2 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +12,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +25,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 50 -t 4 --command="GEODIST key 1 2" --hide-histogram --test-time 180 + arguments: -c 50 -t 4 --command="GEODIST key 1 2" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 166 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml index c372b4bc..086adf41 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOHASH command. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOHASH command. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +11,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +24,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 -c 50 -t 4 --command="GEOHASH key 1" --hide-histogram --test-time 180 + arguments: --pipeline 10 -c 50 -t 4 --command="GEOHASH key 1" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 170 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml index 874afbe0..60bafe1f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geohash -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOHASH command. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOHASH command. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +11,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -27,5 +29,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 170 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml index 5eb3f017..4f69e8d8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOPOS command. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOPOS command. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +11,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +24,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 -c 50 -t 4 --command="GEOPOS key 1" --hide-histogram --test-time 180 + arguments: --pipeline 10 -c 50 -t 4 --command="GEOPOS key 1" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 138 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml index 6c61bf47..a86f2c95 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geopos -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOPOS command. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOPOS command. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +11,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -27,5 +29,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 138 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml index cdda03ac..04e47de1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOSEARCH command that replies with a very large (~11K ) number of elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOSEARCH command that + replies with a very large (~11K ) number of elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +12,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +25,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 BYBOX 200 200 KM" --hide-histogram --test-time 180 + arguments: -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 BYBOX 200 200 + KM" --hide-histogram --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 158 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml index 21d7bc02..ce25254a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOSEARCH command that replies with a very large (~100K ) number of elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOSEARCH command that + replies with a very large (~100K ) number of elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +12,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +25,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 BYRADIUS 200 KM" --hide-histogram --test-time 180 + arguments: --pipeline 10 -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 + BYRADIUS 200 KM" --hide-histogram --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 158 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml index 0be8b0e4..8f61c1c8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat -description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO key contains 60841557 elements in it and we query it using GEOSEARCH command that replies with a very large (~100K ) number of elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 GEO key. The GEO + key contains 60841557 elements in it and we query it using GEOSEARCH command that + replies with a very large (~100K ) number of elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,6 +12,7 @@ dbconfig: resources: requests: memory: 6g + dataset_name: 1key-geo-60M-elements tested-groups: - geo tested-commands: @@ -22,10 +25,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 BYRADIUS 200 KM" --hide-histogram --test-time 180 + arguments: -c 2 -t 4 --command="GEOSEARCH key FROMLONLAT 7.0 55.0 BYRADIUS 200 KM" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 158 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml index 1ddadde6..48da81d3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml @@ -9,8 +9,258 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"HSET" "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" "value" "jqurtadjro" "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" "value" "kjeevccyof" "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" "value" "znartcywze" "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" "value" "uxvibjduto" "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" "value" "bnatichltp" "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" "value" "nlqtadqinl" "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" "value" "wcpbfslakk" "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" "value" "rpyroriegs" "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" "value" "jhocasnttw" "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" "value" "rbdabbmnrf" "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" "value" "bqoabrqwwj" "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" "value" "zwlhpcahwu" "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" "value" "myzjxvtvjh" "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" "value" "ukprrucywq" "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" "value" "xzbqjpzqlm" "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" "value" "cpjveufsvk" "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" "value" "eqaxrccwjq" "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" "value" "gktcjcfxbb" "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" "value" "gayysuldha" "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" "value" "erqgyscser" "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" "value" "ofcurtthcs" "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" "value" "kgopxvsdah" "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" "value" "glynpmsjcf" "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" "value" "gsvkmnluiz" "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" "value" "kdodndexvr" "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" "value" "tcpwkimype" "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" "value" "mugdxqnjxj" "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" "value" "efhynoxlul" "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" "value" "pmaagvqldo" "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" "value" "fvemodlpgz" "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" "value" "yxsnreuepl" "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" "value" "gehuriygwq" "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" "value" "rhzpguhsws" "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" "value" "gbjzsedhag" "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" "value" "ctnaggdbru" "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" "value" "vhjaphfdpj" "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" "value" "qnqzibcmip" "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" "value" "dgodkfjzos" "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" "value" "gbeizdzdyb" "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" "value" "ngwifjdpha" "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" "value" "whdftyqojv" "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" "value" "krfosgrmjb" "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" "value" "haxesjafmh" "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" "value" "quemrlmwod" "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" "value" "puvgjfjyaf" "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" "value" "xeurpmfdmo" "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" "value" "rfhlttsuqy" "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" "value" "umwunfzsvo" "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" "value" "kohpozxkhl" "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" "value" "tmkoxwdgpx" "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" "value" "qwxzqlqter" "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" "value" "kdklhpxntt" "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" "value" "dfemamyevk" "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" "value" "lftmqoxhfc" "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" "value" "vqashxkrik" "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" "value" "jqgtbgbybq" "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" "value" "wwowdvybjj" "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" "value" "fiugzrozky" "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" "value" "nwywtydqew" "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" "value" "trwzipsers" "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" "value" "xkvgnzjgrm" "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" "value" "bxwvqvndcc" "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" "value" "muocqqypmt" "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" "value" "vpqlxtfkjz" "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" "value" "tqjpijliii" "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" "value" "ffrviosqzo" "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" "value" "maxylirjgh" "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" "value" "nszbrpweoz" "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" "value" "gqybtjuhvq" "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" "value" "vuqlqdpfdn" "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" "value" "szupcnvvij" "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" "value" "lbjarnpxhh" "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" "value" "nlxwjmzwln" "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" "value" "hertbwuzyw" "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" "value" "pghbwbtfmk" "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" "value" "cvohdragtx" "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" "value" "lgqazzajpx" "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" "value" "bvvoibkfrt" "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" "value" "ughnpilqqm" "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" "value" "rofnkytnhm" "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" "value" "ffksbrtbfq" "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" "value" "yoblelzlkd" "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" "value" "ebhhhgabjd" "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" "value" "krxneqolle" "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" "value" "agswwrfabr" "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" "value" "sfuvzzxbxq" "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" "value" "nmfihtnkel" "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" "value" "xlmvatfsly" "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" "value" "gbazuqnmit" "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" "value" "pgdhjrxhga" "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" "value" "sotbjzlsvz" "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" "value" "qclkaeciey" "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" "value" "wrrgxxkxkc" "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" "value" "cmhkstsjok" "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" "value" "sqwhsgboef" "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" "value" "nahweurftw" "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" "value" "ksppwhhqzj" "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" "value" "kbfqdppnfa" "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" "value" "tglieutcis" "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" "value" "kpfqxroqbs" "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" "value" "nvkfnfzoki" "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" "value" "ysnndkycix" "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" "value" "zorzyqtjtr" "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" "value" "kcbotffyca" "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" "value" "zejhycldyy" "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" "value" "plqbwsiuzw" "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" "value" "omwbgglqsp" "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" "value" "rnlaakgsrf" "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" "value" "sotsxznskx" "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" "value" "utymwhxigo" "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" "value" "saqilljaid" "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" "value" "tlnkrncpwi" "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" "value" "vzcclamtun" "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" "value" "osaekeukqx" "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" "value" "vsvhjrymqc" "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" "value" "ghwcrdlbjj" "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" "value" "aiqqyusnuv" "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" "value" "ywiurvfbpg" "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" "value" "ymqxhmnidz" "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" "value" "oqmuhlruqy" "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" "value" "hnnfmyurhx" "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" "value" "aslibwggrp" "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" "value" "ctgwmawlgl" "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" "value" "ulepgommyy" "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" "value" "oeawjlqnyg" "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" "value" "thmmmlqluk" "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" "value" "mmqblvrscy" "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" "value" "rwrxxrnwtq" "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" "value" "ynnhyctikq" "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" "value" "ftnbjymlll" "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" "value" "fgygwdazbm" "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" "value" "wvrlxfoxff" "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" "value" "fqtktfghcv" "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" "value" "tsmzfswaxo" "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" "value" "caxgjftjyj" "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" "value" "dbtbtvkqss" "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" "value" "lxzdcbveuy" "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" "value" "lspvrnxnjo" "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" "value" "fgzwwaedjy" "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" "value" "cbtpbbfrdd" "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" "value" "fhobhpwwkp" "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" "value" "dtgjnddwch" "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" "value" "krtsiucvvu" "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" "value" "dcjlwhfstw" "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" "value" "ljklggibcy" "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" "value" "flvftlpbjq" "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" "value" "bweysooxiv" "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" "value" "wtcpliaxmk" "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" "value" "mcojdazpfq" "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" "value" "nfucelqjfe" "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" "value" "qwozutlufu" "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" "value" "adlxahxsbq" "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" "value" "pyrpwxalpc" "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" "value" "umoicweaab" "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" "value" "ikpikupjoi" "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" "value" "jbzyfznpdn" "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" "value" "zuoqjiciij" "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" "value" "cmqraybrlw" "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" "value" "hyanpicfan" "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" "value" "weqhfkosif" "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" "value" "fmyleefltp" "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" "value" "jvtalmlkng" "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" "value" "keklddczkd" "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" "value" "fuipidfbjt" "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" "value" "ezbiwqnabg" "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" "value" "qqfnugftmr" "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" "value" "anmcogawkg" "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" "value" "gfdzgxfdcg" "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" "value" "vpehhmoxva" "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" "value" "qsxfnsicrx" "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" "value" "htawohddyn" "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" "value" "cuuytorpnp" "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" "value" "fsuovvpgng" "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" "value" "mcbuftndrr" "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" "value" "ekponflaeq" "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" "value" "uqbpcvkipa" "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" "value" "ramoirrdyd" "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" "value" "yzcspfvcot" "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" "value" "ocesqguvym" "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" "value" "zcffhzusrl" "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" "value" "lpahctqgna" "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" "value" "xwtwtwmbgu" "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" "value" "etcsjxoqab" "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" "value" "mlznoaajqq" "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" "value" "cgmivhyskk" "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" "value" "ncremxgfdb" "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" "value" "jjczogqdwz" "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" "value" "llimzyabsp" "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" "value" "nmtmjmhmdl" "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" "value" "dnvwyhyhsn" "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" "value" "yjhypaonqq" "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" "value" "higdkhodzy" "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" "value" "lywsezpzgf" "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" "value" "yfvwesgulw" "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" "value" "qmnxipsiga" "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" "value" "sxcihybfci" "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" "value" "xsueeljljp" "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" "value" "rkwlgzhvvy" "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" "value" "xftfzsoiwc" "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" "value" "dxdngrmypg" "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" "value" "vealtjlqyc" "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" "value" "pudgkcbwdx" "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" "value" "jetamrlglx" "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" "value" "dtuhvpszzt" "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" "value" "cynhehkcxs" "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" "value" "audguegpmo" "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" "value" "uncqdpbhwb" "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" "value" "mkngszsxeu" "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" "value" "ocmtsfpsgh" "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" "value" "hrhiqcarju" "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" "value" "avchkjnlwm" "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" "value" "xkiuuciwrn" "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" "value" "wzuhzzdezi" "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" "value" "srkvjhetmj" "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" "value" "asbtvfzien" "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" "value" "euleuicawb" "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" "value" "klwqsggtob" "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" "value" "xrvonyieqa" "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" "value" "wvdmobfisx" "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" "value" "vorgqhmaoq" "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" "value" "vnsufnurol" "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" "value" "rjrtvpntke" "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" "value" "gcsswbksnc" "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" "value" "eaetplspga" "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" "value" "qzlfnntjar" "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" "value" "hggqmlgwha" "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" "value" "cflarkquuv" "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" "value" "ylxiwiesps" "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" "value" "laepwenqmc" "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" "value" "tvlckdoyfe" "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" "value" "umttshfkpk" "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" "value" "ivinvxopgz" "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" "value" "gdlztbhpeq" "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" "value" "dtjljhzqcm" "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" "value" "evjrybtwww" "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" "value" "dgcesswkvc" "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" "value" "aexxjlgwuo" "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" "value" "snpuvnebpy" "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" "value" "eqiukbyscu" "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" "value" "inboyxgoqa" "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" "value" "igwekdegcw" "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" "value" "arqqmfmmbz" "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" "value" "tjnbsybxws" "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" "value" "kngwkkzwts" "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" "value" "nunpqugdit" "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" "value" "ezgxjiwwig" "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" "value" "exhjfssojj" "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" "value"' + init_commands: '"HSET" "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" + "value" "jqurtadjro" "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" + "value" "kjeevccyof" "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" + "value" "znartcywze" "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" + "value" "uxvibjduto" "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" + "value" "bnatichltp" "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" + "value" "nlqtadqinl" "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" + "value" "wcpbfslakk" "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" + "value" "rpyroriegs" "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" + "value" "jhocasnttw" "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" + "value" "rbdabbmnrf" "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" + "value" "bqoabrqwwj" "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" + "value" "zwlhpcahwu" "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" + "value" "myzjxvtvjh" "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" + "value" "ukprrucywq" "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" + "value" "xzbqjpzqlm" "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" + "value" "cpjveufsvk" "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" + "value" "eqaxrccwjq" "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" + "value" "gktcjcfxbb" "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" + "value" "gayysuldha" "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" + "value" "erqgyscser" "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" + "value" "ofcurtthcs" "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" + "value" "kgopxvsdah" "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" + "value" "glynpmsjcf" "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" + "value" "gsvkmnluiz" "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" + "value" "kdodndexvr" "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" + "value" "tcpwkimype" "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" + "value" "mugdxqnjxj" "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" + "value" "efhynoxlul" "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" + "value" "pmaagvqldo" "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" + "value" "fvemodlpgz" "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" + "value" "yxsnreuepl" "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" + "value" "gehuriygwq" "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" + "value" "rhzpguhsws" "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" + "value" "gbjzsedhag" "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" + "value" "ctnaggdbru" "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" + "value" "vhjaphfdpj" "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" + "value" "qnqzibcmip" "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" + "value" "dgodkfjzos" "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" + "value" "gbeizdzdyb" "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" + "value" "ngwifjdpha" "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" + "value" "whdftyqojv" "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" + "value" "krfosgrmjb" "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" + "value" "haxesjafmh" "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" + "value" "quemrlmwod" "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" + "value" "puvgjfjyaf" "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" + "value" "xeurpmfdmo" "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" + "value" "rfhlttsuqy" "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" + "value" "umwunfzsvo" "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" + "value" "kohpozxkhl" "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" + "value" "tmkoxwdgpx" "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" + "value" "qwxzqlqter" "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" + "value" "kdklhpxntt" "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" + "value" "dfemamyevk" "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" + "value" "lftmqoxhfc" "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" + "value" "vqashxkrik" "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" + "value" "jqgtbgbybq" "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" + "value" "wwowdvybjj" "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" + "value" "fiugzrozky" "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" + "value" "nwywtydqew" "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" + "value" "trwzipsers" "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" + "value" "xkvgnzjgrm" "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" + "value" "bxwvqvndcc" "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" + "value" "muocqqypmt" "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" + "value" "vpqlxtfkjz" "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" + "value" "tqjpijliii" "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" + "value" "ffrviosqzo" "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" + "value" "maxylirjgh" "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" + "value" "nszbrpweoz" "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" + "value" "gqybtjuhvq" "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" + "value" "vuqlqdpfdn" "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" + "value" "szupcnvvij" "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" + "value" "lbjarnpxhh" "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" + "value" "nlxwjmzwln" "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" + "value" "hertbwuzyw" "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" + "value" "pghbwbtfmk" "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" + "value" "cvohdragtx" "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" + "value" "lgqazzajpx" "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" + "value" "bvvoibkfrt" "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" + "value" "ughnpilqqm" "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" + "value" "rofnkytnhm" "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" + "value" "ffksbrtbfq" "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" + "value" "yoblelzlkd" "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" + "value" "ebhhhgabjd" "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" + "value" "krxneqolle" "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" + "value" "agswwrfabr" "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" + "value" "sfuvzzxbxq" "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" + "value" "nmfihtnkel" "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" + "value" "xlmvatfsly" "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" + "value" "gbazuqnmit" "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" + "value" "pgdhjrxhga" "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" + "value" "sotbjzlsvz" "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" + "value" "qclkaeciey" "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" + "value" "wrrgxxkxkc" "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" + "value" "cmhkstsjok" "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" + "value" "sqwhsgboef" "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" + "value" "nahweurftw" "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" + "value" "ksppwhhqzj" "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" + "value" "kbfqdppnfa" "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" + "value" "tglieutcis" "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" + "value" "kpfqxroqbs" "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" + "value" "nvkfnfzoki" "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" + "value" "ysnndkycix" "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" + "value" "zorzyqtjtr" "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" + "value" "kcbotffyca" "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" + "value" "zejhycldyy" "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" + "value" "plqbwsiuzw" "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" + "value" "omwbgglqsp" "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" + "value" "rnlaakgsrf" "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" + "value" "sotsxznskx" "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" + "value" "utymwhxigo" "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" + "value" "saqilljaid" "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" + "value" "tlnkrncpwi" "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" + "value" "vzcclamtun" "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" + "value" "osaekeukqx" "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" + "value" "vsvhjrymqc" "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" + "value" "ghwcrdlbjj" "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" + "value" "aiqqyusnuv" "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" + "value" "ywiurvfbpg" "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" + "value" "ymqxhmnidz" "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" + "value" "oqmuhlruqy" "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" + "value" "hnnfmyurhx" "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" + "value" "aslibwggrp" "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" + "value" "ctgwmawlgl" "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" + "value" "ulepgommyy" "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" + "value" "oeawjlqnyg" "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" + "value" "thmmmlqluk" "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" + "value" "mmqblvrscy" "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" + "value" "rwrxxrnwtq" "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" + "value" "ynnhyctikq" "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" + "value" "ftnbjymlll" "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" + "value" "fgygwdazbm" "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" + "value" "wvrlxfoxff" "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" + "value" "fqtktfghcv" "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" + "value" "tsmzfswaxo" "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" + "value" "caxgjftjyj" "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" + "value" "dbtbtvkqss" "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" + "value" "lxzdcbveuy" "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" + "value" "lspvrnxnjo" "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" + "value" "fgzwwaedjy" "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" + "value" "cbtpbbfrdd" "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" + "value" "fhobhpwwkp" "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" + "value" "dtgjnddwch" "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" + "value" "krtsiucvvu" "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" + "value" "dcjlwhfstw" "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" + "value" "ljklggibcy" "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" + "value" "flvftlpbjq" "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" + "value" "bweysooxiv" "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" + "value" "wtcpliaxmk" "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" + "value" "mcojdazpfq" "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" + "value" "nfucelqjfe" "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" + "value" "qwozutlufu" "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" + "value" "adlxahxsbq" "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" + "value" "pyrpwxalpc" "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" + "value" "umoicweaab" "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" + "value" "ikpikupjoi" "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" + "value" "jbzyfznpdn" "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" + "value" "zuoqjiciij" "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" + "value" "cmqraybrlw" "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" + "value" "hyanpicfan" "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" + "value" "weqhfkosif" "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" + "value" "fmyleefltp" "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" + "value" "jvtalmlkng" "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" + "value" "keklddczkd" "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" + "value" "fuipidfbjt" "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" + "value" "ezbiwqnabg" "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" + "value" "qqfnugftmr" "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" + "value" "anmcogawkg" "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" + "value" "gfdzgxfdcg" "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" + "value" "vpehhmoxva" "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" + "value" "qsxfnsicrx" "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" + "value" "htawohddyn" "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" + "value" "cuuytorpnp" "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" + "value" "fsuovvpgng" "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" + "value" "mcbuftndrr" "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" + "value" "ekponflaeq" "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" + "value" "uqbpcvkipa" "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" + "value" "ramoirrdyd" "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" + "value" "yzcspfvcot" "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" + "value" "ocesqguvym" "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" + "value" "zcffhzusrl" "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" + "value" "lpahctqgna" "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" + "value" "xwtwtwmbgu" "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" + "value" "etcsjxoqab" "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" + "value" "mlznoaajqq" "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" + "value" "cgmivhyskk" "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" + "value" "ncremxgfdb" "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" + "value" "jjczogqdwz" "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" + "value" "llimzyabsp" "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" + "value" "nmtmjmhmdl" "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" + "value" "dnvwyhyhsn" "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" + "value" "yjhypaonqq" "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" + "value" "higdkhodzy" "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" + "value" "lywsezpzgf" "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" + "value" "yfvwesgulw" "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" + "value" "qmnxipsiga" "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" + "value" "sxcihybfci" "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" + "value" "xsueeljljp" "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" + "value" "rkwlgzhvvy" "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" + "value" "xftfzsoiwc" "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" + "value" "dxdngrmypg" "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" + "value" "vealtjlqyc" "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" + "value" "pudgkcbwdx" "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" + "value" "jetamrlglx" "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" + "value" "dtuhvpszzt" "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" + "value" "cynhehkcxs" "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" + "value" "audguegpmo" "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" + "value" "uncqdpbhwb" "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" + "value" "mkngszsxeu" "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" + "value" "ocmtsfpsgh" "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" + "value" "hrhiqcarju" "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" + "value" "avchkjnlwm" "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" + "value" "xkiuuciwrn" "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" + "value" "wzuhzzdezi" "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" + "value" "srkvjhetmj" "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" + "value" "asbtvfzien" "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" + "value" "euleuicawb" "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" + "value" "klwqsggtob" "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" + "value" "xrvonyieqa" "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" + "value" "wvdmobfisx" "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" + "value" "vorgqhmaoq" "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" + "value" "vnsufnurol" "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" + "value" "rjrtvpntke" "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" + "value" "gcsswbksnc" "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" + "value" "eaetplspga" "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" + "value" "qzlfnntjar" "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" + "value" "hggqmlgwha" "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" + "value" "cflarkquuv" "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" + "value" "ylxiwiesps" "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" + "value" "laepwenqmc" "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" + "value" "tvlckdoyfe" "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" + "value" "umttshfkpk" "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" + "value" "ivinvxopgz" "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" + "value" "gdlztbhpeq" "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" + "value" "dtjljhzqcm" "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" + "value" "evjrybtwww" "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" + "value" "dgcesswkvc" "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" + "value" "aexxjlgwuo" "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" + "value" "snpuvnebpy" "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" + "value" "eqiukbyscu" "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" + "value" "inboyxgoqa" "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" + "value" "igwekdegcw" "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" + "value" "arqqmfmmbz" "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" + "value" "tjnbsybxws" "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" + "value" "kngwkkzwts" "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" + "value" "nunpqugdit" "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" + "value" "ezgxjiwwig" "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" + "value" "exhjfssojj" "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" + "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" + "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" + "value" "hjjxyybxiv" "value"' + dataset_name: 1key-hash-1K-fields tested-groups: - hash tested-commands: @@ -23,10 +273,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="HGETALL hash:1000" --hide-histogram --test-time 180 --pipeline 10 + arguments: --command="HGETALL hash:1000" --hide-histogram --test-time 180 --pipeline + 10 resources: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml index 1b8e5414..e9a7d261 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml @@ -9,8 +9,258 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"HSET" "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" "value" "jqurtadjro" "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" "value" "kjeevccyof" "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" "value" "znartcywze" "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" "value" "uxvibjduto" "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" "value" "bnatichltp" "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" "value" "nlqtadqinl" "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" "value" "wcpbfslakk" "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" "value" "rpyroriegs" "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" "value" "jhocasnttw" "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" "value" "rbdabbmnrf" "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" "value" "bqoabrqwwj" "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" "value" "zwlhpcahwu" "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" "value" "myzjxvtvjh" "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" "value" "ukprrucywq" "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" "value" "xzbqjpzqlm" "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" "value" "cpjveufsvk" "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" "value" "eqaxrccwjq" "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" "value" "gktcjcfxbb" "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" "value" "gayysuldha" "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" "value" "erqgyscser" "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" "value" "ofcurtthcs" "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" "value" "kgopxvsdah" "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" "value" "glynpmsjcf" "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" "value" "gsvkmnluiz" "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" "value" "kdodndexvr" "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" "value" "tcpwkimype" "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" "value" "mugdxqnjxj" "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" "value" "efhynoxlul" "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" "value" "pmaagvqldo" "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" "value" "fvemodlpgz" "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" "value" "yxsnreuepl" "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" "value" "gehuriygwq" "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" "value" "rhzpguhsws" "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" "value" "gbjzsedhag" "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" "value" "ctnaggdbru" "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" "value" "vhjaphfdpj" "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" "value" "qnqzibcmip" "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" "value" "dgodkfjzos" "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" "value" "gbeizdzdyb" "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" "value" "ngwifjdpha" "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" "value" "whdftyqojv" "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" "value" "krfosgrmjb" "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" "value" "haxesjafmh" "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" "value" "quemrlmwod" "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" "value" "puvgjfjyaf" "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" "value" "xeurpmfdmo" "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" "value" "rfhlttsuqy" "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" "value" "umwunfzsvo" "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" "value" "kohpozxkhl" "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" "value" "tmkoxwdgpx" "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" "value" "qwxzqlqter" "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" "value" "kdklhpxntt" "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" "value" "dfemamyevk" "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" "value" "lftmqoxhfc" "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" "value" "vqashxkrik" "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" "value" "jqgtbgbybq" "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" "value" "wwowdvybjj" "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" "value" "fiugzrozky" "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" "value" "nwywtydqew" "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" "value" "trwzipsers" "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" "value" "xkvgnzjgrm" "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" "value" "bxwvqvndcc" "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" "value" "muocqqypmt" "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" "value" "vpqlxtfkjz" "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" "value" "tqjpijliii" "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" "value" "ffrviosqzo" "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" "value" "maxylirjgh" "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" "value" "nszbrpweoz" "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" "value" "gqybtjuhvq" "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" "value" "vuqlqdpfdn" "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" "value" "szupcnvvij" "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" "value" "lbjarnpxhh" "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" "value" "nlxwjmzwln" "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" "value" "hertbwuzyw" "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" "value" "pghbwbtfmk" "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" "value" "cvohdragtx" "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" "value" "lgqazzajpx" "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" "value" "bvvoibkfrt" "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" "value" "ughnpilqqm" "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" "value" "rofnkytnhm" "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" "value" "ffksbrtbfq" "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" "value" "yoblelzlkd" "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" "value" "ebhhhgabjd" "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" "value" "krxneqolle" "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" "value" "agswwrfabr" "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" "value" "sfuvzzxbxq" "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" "value" "nmfihtnkel" "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" "value" "xlmvatfsly" "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" "value" "gbazuqnmit" "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" "value" "pgdhjrxhga" "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" "value" "sotbjzlsvz" "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" "value" "qclkaeciey" "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" "value" "wrrgxxkxkc" "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" "value" "cmhkstsjok" "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" "value" "sqwhsgboef" "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" "value" "nahweurftw" "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" "value" "ksppwhhqzj" "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" "value" "kbfqdppnfa" "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" "value" "tglieutcis" "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" "value" "kpfqxroqbs" "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" "value" "nvkfnfzoki" "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" "value" "ysnndkycix" "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" "value" "zorzyqtjtr" "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" "value" "kcbotffyca" "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" "value" "zejhycldyy" "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" "value" "plqbwsiuzw" "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" "value" "omwbgglqsp" "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" "value" "rnlaakgsrf" "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" "value" "sotsxznskx" "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" "value" "utymwhxigo" "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" "value" "saqilljaid" "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" "value" "tlnkrncpwi" "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" "value" "vzcclamtun" "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" "value" "osaekeukqx" "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" "value" "vsvhjrymqc" "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" "value" "ghwcrdlbjj" "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" "value" "aiqqyusnuv" "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" "value" "ywiurvfbpg" "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" "value" "ymqxhmnidz" "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" "value" "oqmuhlruqy" "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" "value" "hnnfmyurhx" "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" "value" "aslibwggrp" "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" "value" "ctgwmawlgl" "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" "value" "ulepgommyy" "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" "value" "oeawjlqnyg" "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" "value" "thmmmlqluk" "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" "value" "mmqblvrscy" "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" "value" "rwrxxrnwtq" "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" "value" "ynnhyctikq" "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" "value" "ftnbjymlll" "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" "value" "fgygwdazbm" "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" "value" "wvrlxfoxff" "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" "value" "fqtktfghcv" "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" "value" "tsmzfswaxo" "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" "value" "caxgjftjyj" "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" "value" "dbtbtvkqss" "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" "value" "lxzdcbveuy" "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" "value" "lspvrnxnjo" "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" "value" "fgzwwaedjy" "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" "value" "cbtpbbfrdd" "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" "value" "fhobhpwwkp" "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" "value" "dtgjnddwch" "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" "value" "krtsiucvvu" "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" "value" "dcjlwhfstw" "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" "value" "ljklggibcy" "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" "value" "flvftlpbjq" "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" "value" "bweysooxiv" "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" "value" "wtcpliaxmk" "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" "value" "mcojdazpfq" "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" "value" "nfucelqjfe" "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" "value" "qwozutlufu" "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" "value" "adlxahxsbq" "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" "value" "pyrpwxalpc" "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" "value" "umoicweaab" "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" "value" "ikpikupjoi" "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" "value" "jbzyfznpdn" "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" "value" "zuoqjiciij" "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" "value" "cmqraybrlw" "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" "value" "hyanpicfan" "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" "value" "weqhfkosif" "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" "value" "fmyleefltp" "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" "value" "jvtalmlkng" "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" "value" "keklddczkd" "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" "value" "fuipidfbjt" "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" "value" "ezbiwqnabg" "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" "value" "qqfnugftmr" "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" "value" "anmcogawkg" "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" "value" "gfdzgxfdcg" "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" "value" "vpehhmoxva" "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" "value" "qsxfnsicrx" "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" "value" "htawohddyn" "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" "value" "cuuytorpnp" "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" "value" "fsuovvpgng" "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" "value" "mcbuftndrr" "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" "value" "ekponflaeq" "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" "value" "uqbpcvkipa" "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" "value" "ramoirrdyd" "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" "value" "yzcspfvcot" "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" "value" "ocesqguvym" "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" "value" "zcffhzusrl" "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" "value" "lpahctqgna" "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" "value" "xwtwtwmbgu" "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" "value" "etcsjxoqab" "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" "value" "mlznoaajqq" "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" "value" "cgmivhyskk" "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" "value" "ncremxgfdb" "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" "value" "jjczogqdwz" "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" "value" "llimzyabsp" "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" "value" "nmtmjmhmdl" "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" "value" "dnvwyhyhsn" "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" "value" "yjhypaonqq" "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" "value" "higdkhodzy" "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" "value" "lywsezpzgf" "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" "value" "yfvwesgulw" "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" "value" "qmnxipsiga" "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" "value" "sxcihybfci" "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" "value" "xsueeljljp" "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" "value" "rkwlgzhvvy" "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" "value" "xftfzsoiwc" "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" "value" "dxdngrmypg" "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" "value" "vealtjlqyc" "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" "value" "pudgkcbwdx" "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" "value" "jetamrlglx" "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" "value" "dtuhvpszzt" "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" "value" "cynhehkcxs" "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" "value" "audguegpmo" "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" "value" "uncqdpbhwb" "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" "value" "mkngszsxeu" "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" "value" "ocmtsfpsgh" "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" "value" "hrhiqcarju" "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" "value" "avchkjnlwm" "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" "value" "xkiuuciwrn" "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" "value" "wzuhzzdezi" "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" "value" "srkvjhetmj" "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" "value" "asbtvfzien" "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" "value" "euleuicawb" "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" "value" "klwqsggtob" "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" "value" "xrvonyieqa" "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" "value" "wvdmobfisx" "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" "value" "vorgqhmaoq" "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" "value" "vnsufnurol" "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" "value" "rjrtvpntke" "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" "value" "gcsswbksnc" "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" "value" "eaetplspga" "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" "value" "qzlfnntjar" "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" "value" "hggqmlgwha" "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" "value" "cflarkquuv" "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" "value" "ylxiwiesps" "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" "value" "laepwenqmc" "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" "value" "tvlckdoyfe" "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" "value" "umttshfkpk" "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" "value" "ivinvxopgz" "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" "value" "gdlztbhpeq" "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" "value" "dtjljhzqcm" "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" "value" "evjrybtwww" "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" "value" "dgcesswkvc" "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" "value" "aexxjlgwuo" "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" "value" "snpuvnebpy" "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" "value" "eqiukbyscu" "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" "value" "inboyxgoqa" "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" "value" "igwekdegcw" "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" "value" "arqqmfmmbz" "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" "value" "tjnbsybxws" "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" "value" "kngwkkzwts" "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" "value" "nunpqugdit" "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" "value" "ezgxjiwwig" "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" "value" "exhjfssojj" "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" "value"' + init_commands: '"HSET" "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" + "value" "jqurtadjro" "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" + "value" "kjeevccyof" "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" + "value" "znartcywze" "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" + "value" "uxvibjduto" "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" + "value" "bnatichltp" "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" + "value" "nlqtadqinl" "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" + "value" "wcpbfslakk" "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" + "value" "rpyroriegs" "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" + "value" "jhocasnttw" "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" + "value" "rbdabbmnrf" "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" + "value" "bqoabrqwwj" "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" + "value" "zwlhpcahwu" "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" + "value" "myzjxvtvjh" "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" + "value" "ukprrucywq" "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" + "value" "xzbqjpzqlm" "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" + "value" "cpjveufsvk" "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" + "value" "eqaxrccwjq" "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" + "value" "gktcjcfxbb" "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" + "value" "gayysuldha" "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" + "value" "erqgyscser" "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" + "value" "ofcurtthcs" "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" + "value" "kgopxvsdah" "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" + "value" "glynpmsjcf" "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" + "value" "gsvkmnluiz" "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" + "value" "kdodndexvr" "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" + "value" "tcpwkimype" "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" + "value" "mugdxqnjxj" "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" + "value" "efhynoxlul" "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" + "value" "pmaagvqldo" "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" + "value" "fvemodlpgz" "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" + "value" "yxsnreuepl" "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" + "value" "gehuriygwq" "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" + "value" "rhzpguhsws" "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" + "value" "gbjzsedhag" "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" + "value" "ctnaggdbru" "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" + "value" "vhjaphfdpj" "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" + "value" "qnqzibcmip" "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" + "value" "dgodkfjzos" "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" + "value" "gbeizdzdyb" "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" + "value" "ngwifjdpha" "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" + "value" "whdftyqojv" "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" + "value" "krfosgrmjb" "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" + "value" "haxesjafmh" "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" + "value" "quemrlmwod" "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" + "value" "puvgjfjyaf" "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" + "value" "xeurpmfdmo" "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" + "value" "rfhlttsuqy" "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" + "value" "umwunfzsvo" "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" + "value" "kohpozxkhl" "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" + "value" "tmkoxwdgpx" "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" + "value" "qwxzqlqter" "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" + "value" "kdklhpxntt" "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" + "value" "dfemamyevk" "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" + "value" "lftmqoxhfc" "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" + "value" "vqashxkrik" "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" + "value" "jqgtbgbybq" "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" + "value" "wwowdvybjj" "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" + "value" "fiugzrozky" "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" + "value" "nwywtydqew" "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" + "value" "trwzipsers" "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" + "value" "xkvgnzjgrm" "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" + "value" "bxwvqvndcc" "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" + "value" "muocqqypmt" "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" + "value" "vpqlxtfkjz" "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" + "value" "tqjpijliii" "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" + "value" "ffrviosqzo" "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" + "value" "maxylirjgh" "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" + "value" "nszbrpweoz" "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" + "value" "gqybtjuhvq" "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" + "value" "vuqlqdpfdn" "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" + "value" "szupcnvvij" "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" + "value" "lbjarnpxhh" "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" + "value" "nlxwjmzwln" "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" + "value" "hertbwuzyw" "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" + "value" "pghbwbtfmk" "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" + "value" "cvohdragtx" "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" + "value" "lgqazzajpx" "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" + "value" "bvvoibkfrt" "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" + "value" "ughnpilqqm" "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" + "value" "rofnkytnhm" "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" + "value" "ffksbrtbfq" "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" + "value" "yoblelzlkd" "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" + "value" "ebhhhgabjd" "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" + "value" "krxneqolle" "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" + "value" "agswwrfabr" "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" + "value" "sfuvzzxbxq" "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" + "value" "nmfihtnkel" "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" + "value" "xlmvatfsly" "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" + "value" "gbazuqnmit" "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" + "value" "pgdhjrxhga" "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" + "value" "sotbjzlsvz" "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" + "value" "qclkaeciey" "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" + "value" "wrrgxxkxkc" "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" + "value" "cmhkstsjok" "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" + "value" "sqwhsgboef" "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" + "value" "nahweurftw" "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" + "value" "ksppwhhqzj" "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" + "value" "kbfqdppnfa" "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" + "value" "tglieutcis" "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" + "value" "kpfqxroqbs" "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" + "value" "nvkfnfzoki" "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" + "value" "ysnndkycix" "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" + "value" "zorzyqtjtr" "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" + "value" "kcbotffyca" "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" + "value" "zejhycldyy" "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" + "value" "plqbwsiuzw" "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" + "value" "omwbgglqsp" "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" + "value" "rnlaakgsrf" "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" + "value" "sotsxznskx" "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" + "value" "utymwhxigo" "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" + "value" "saqilljaid" "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" + "value" "tlnkrncpwi" "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" + "value" "vzcclamtun" "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" + "value" "osaekeukqx" "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" + "value" "vsvhjrymqc" "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" + "value" "ghwcrdlbjj" "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" + "value" "aiqqyusnuv" "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" + "value" "ywiurvfbpg" "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" + "value" "ymqxhmnidz" "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" + "value" "oqmuhlruqy" "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" + "value" "hnnfmyurhx" "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" + "value" "aslibwggrp" "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" + "value" "ctgwmawlgl" "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" + "value" "ulepgommyy" "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" + "value" "oeawjlqnyg" "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" + "value" "thmmmlqluk" "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" + "value" "mmqblvrscy" "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" + "value" "rwrxxrnwtq" "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" + "value" "ynnhyctikq" "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" + "value" "ftnbjymlll" "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" + "value" "fgygwdazbm" "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" + "value" "wvrlxfoxff" "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" + "value" "fqtktfghcv" "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" + "value" "tsmzfswaxo" "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" + "value" "caxgjftjyj" "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" + "value" "dbtbtvkqss" "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" + "value" "lxzdcbveuy" "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" + "value" "lspvrnxnjo" "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" + "value" "fgzwwaedjy" "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" + "value" "cbtpbbfrdd" "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" + "value" "fhobhpwwkp" "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" + "value" "dtgjnddwch" "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" + "value" "krtsiucvvu" "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" + "value" "dcjlwhfstw" "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" + "value" "ljklggibcy" "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" + "value" "flvftlpbjq" "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" + "value" "bweysooxiv" "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" + "value" "wtcpliaxmk" "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" + "value" "mcojdazpfq" "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" + "value" "nfucelqjfe" "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" + "value" "qwozutlufu" "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" + "value" "adlxahxsbq" "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" + "value" "pyrpwxalpc" "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" + "value" "umoicweaab" "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" + "value" "ikpikupjoi" "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" + "value" "jbzyfznpdn" "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" + "value" "zuoqjiciij" "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" + "value" "cmqraybrlw" "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" + "value" "hyanpicfan" "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" + "value" "weqhfkosif" "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" + "value" "fmyleefltp" "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" + "value" "jvtalmlkng" "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" + "value" "keklddczkd" "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" + "value" "fuipidfbjt" "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" + "value" "ezbiwqnabg" "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" + "value" "qqfnugftmr" "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" + "value" "anmcogawkg" "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" + "value" "gfdzgxfdcg" "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" + "value" "vpehhmoxva" "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" + "value" "qsxfnsicrx" "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" + "value" "htawohddyn" "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" + "value" "cuuytorpnp" "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" + "value" "fsuovvpgng" "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" + "value" "mcbuftndrr" "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" + "value" "ekponflaeq" "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" + "value" "uqbpcvkipa" "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" + "value" "ramoirrdyd" "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" + "value" "yzcspfvcot" "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" + "value" "ocesqguvym" "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" + "value" "zcffhzusrl" "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" + "value" "lpahctqgna" "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" + "value" "xwtwtwmbgu" "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" + "value" "etcsjxoqab" "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" + "value" "mlznoaajqq" "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" + "value" "cgmivhyskk" "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" + "value" "ncremxgfdb" "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" + "value" "jjczogqdwz" "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" + "value" "llimzyabsp" "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" + "value" "nmtmjmhmdl" "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" + "value" "dnvwyhyhsn" "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" + "value" "yjhypaonqq" "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" + "value" "higdkhodzy" "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" + "value" "lywsezpzgf" "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" + "value" "yfvwesgulw" "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" + "value" "qmnxipsiga" "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" + "value" "sxcihybfci" "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" + "value" "xsueeljljp" "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" + "value" "rkwlgzhvvy" "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" + "value" "xftfzsoiwc" "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" + "value" "dxdngrmypg" "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" + "value" "vealtjlqyc" "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" + "value" "pudgkcbwdx" "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" + "value" "jetamrlglx" "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" + "value" "dtuhvpszzt" "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" + "value" "cynhehkcxs" "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" + "value" "audguegpmo" "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" + "value" "uncqdpbhwb" "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" + "value" "mkngszsxeu" "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" + "value" "ocmtsfpsgh" "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" + "value" "hrhiqcarju" "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" + "value" "avchkjnlwm" "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" + "value" "xkiuuciwrn" "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" + "value" "wzuhzzdezi" "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" + "value" "srkvjhetmj" "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" + "value" "asbtvfzien" "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" + "value" "euleuicawb" "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" + "value" "klwqsggtob" "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" + "value" "xrvonyieqa" "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" + "value" "wvdmobfisx" "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" + "value" "vorgqhmaoq" "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" + "value" "vnsufnurol" "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" + "value" "rjrtvpntke" "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" + "value" "gcsswbksnc" "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" + "value" "eaetplspga" "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" + "value" "qzlfnntjar" "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" + "value" "hggqmlgwha" "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" + "value" "cflarkquuv" "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" + "value" "ylxiwiesps" "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" + "value" "laepwenqmc" "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" + "value" "tvlckdoyfe" "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" + "value" "umttshfkpk" "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" + "value" "ivinvxopgz" "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" + "value" "gdlztbhpeq" "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" + "value" "dtjljhzqcm" "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" + "value" "evjrybtwww" "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" + "value" "dgcesswkvc" "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" + "value" "aexxjlgwuo" "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" + "value" "snpuvnebpy" "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" + "value" "eqiukbyscu" "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" + "value" "inboyxgoqa" "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" + "value" "igwekdegcw" "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" + "value" "arqqmfmmbz" "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" + "value" "tjnbsybxws" "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" + "value" "kngwkkzwts" "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" + "value" "nunpqugdit" "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" + "value" "ezgxjiwwig" "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" + "value" "exhjfssojj" "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" + "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" + "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" + "value" "hjjxyybxiv" "value"' + dataset_name: 1key-hash-1K-fields tested-groups: - hash tested-commands: @@ -28,5 +278,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml index 1fe41867..7f91ff5f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000 -description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes in which the value has a data size of 10 Bytes. The key is expected to be hashtable encoded due to the field count and field size. After pre-loading the data it issues HSCAN command. +description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes + in which the value has a data size of 10 Bytes. The key is expected to be hashtable + encoded due to the field count and field size. After pre-loading the data it issues + HSCAN command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +12,259 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "100" --command "HSET memtier-1 field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + arguments: '"--data-size" "100" --command "HSET memtier-1 field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ + field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 + __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ + field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 + __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ + field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 + __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ + field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 + __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ + field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 + __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ + field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 + __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 + __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 + __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 + __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 + __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 + __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 + __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 + __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 + __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 + __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 + __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 + __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 + __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 + __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 + __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 + __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 + __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 + __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 + __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 + __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 + __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 + __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 + __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 + __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 + __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 + __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 + __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 + __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 + __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 + __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 + __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 + __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 + __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 + __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 + __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 + __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 + __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 + __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 + __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 + __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 + __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 + __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 + __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 + __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 + __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 + __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 + __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 + __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 + __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 + __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 + __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 + __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 + __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 + __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 + __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 + __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 + __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 + __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 + __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 + __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 + __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 + __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 + __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 + __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 + __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 + __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 + __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 + __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 + __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 + __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 + __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 + __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 + __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 + __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 + __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 + __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 + __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 + __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 + __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 + __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 + __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 + __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 + __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 + __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 + __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 + __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 + __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 + __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 + __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 + __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 + __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 + __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 + __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 + __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 + __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 + __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 + __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 + __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 + __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 + __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 + __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 + __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 + __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 + __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 + __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 + __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 + __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 + __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 + __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 + __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 + __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 + __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 + __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 + __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 + __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 + __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 + __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 + __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 + __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 + __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 + __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 + __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 + __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 + __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 + __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 + __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 + __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 + __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 + __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 + __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 + __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 + __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 + __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 + __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 + __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 + __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 + __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 + __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 + __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 + __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 + __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 + __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 + __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 + __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 + __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 + __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 + __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 + __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 + __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 + __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 + __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 + __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 + __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 + __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 + __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 + __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 + __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 + __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 + __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 + __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 + __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 + __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 + __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 + __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 + __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 + __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 + __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 + __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 + __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 + __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 + __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 + __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 + __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 + __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 + __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 + __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 + __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 + __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 + __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 + __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 + __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 + __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 + __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 + __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 + __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 + __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 + __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 + __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 + __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 + __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 + __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 + __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 + __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 + __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 + __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 + __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 + __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 + __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 + __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 + __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 + __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 + __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 + __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 + __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 + __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 + __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 + __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 + __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 + __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 + __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 + __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 + __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 + __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 + __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 + __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 + __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 + __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 + __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 + __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 + __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 + __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 + __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 + __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 + __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 + __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1key-hash-hscan-1K-fields-100B-values tested-groups: - hash tested-commands: @@ -25,10 +277,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HSCAN memtier-1 __key__ COUNT 1000" --command-key-pattern="R" --distinct-client-seed --key-prefix "" --key-minimum=1 --key-maximum 1000 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HSCAN memtier-1 __key__ COUNT 1000" --command-key-pattern="R" + --distinct-client-seed --key-prefix "" --key-minimum=1 --key-maximum 1000 --test-time + 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml index ddc3dcdb..d4c628ff 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100 -description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes in which the value has a data size of 10 Bytes. The key is expected to be hashtable encoded due to the field count and field size. After pre-loading the data it issues HSCAN command. +description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes + in which the value has a data size of 10 Bytes. The key is expected to be hashtable + encoded due to the field count and field size. After pre-loading the data it issues + HSCAN command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +12,259 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "HSET memtier-1 field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + arguments: '"--data-size" "10" --command "HSET memtier-1 field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ + field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 + __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ + field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 + __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ + field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 + __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ + field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 + __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ + field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 + __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ + field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 + __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 + __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 + __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 + __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 + __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 + __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 + __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 + __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 + __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 + __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 + __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 + __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 + __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 + __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 + __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 + __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 + __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 + __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 + __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 + __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 + __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 + __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 + __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 + __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 + __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 + __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 + __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 + __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 + __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 + __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 + __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 + __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 + __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 + __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 + __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 + __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 + __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 + __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 + __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 + __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 + __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 + __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 + __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 + __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 + __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 + __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 + __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 + __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 + __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 + __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 + __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 + __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 + __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 + __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 + __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 + __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 + __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 + __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 + __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 + __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 + __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 + __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 + __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 + __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 + __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 + __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 + __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 + __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 + __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 + __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 + __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 + __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 + __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 + __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 + __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 + __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 + __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 + __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 + __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 + __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 + __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 + __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 + __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 + __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 + __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 + __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 + __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 + __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 + __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 + __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 + __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 + __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 + __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 + __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 + __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 + __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 + __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 + __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 + __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 + __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 + __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 + __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 + __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 + __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 + __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 + __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 + __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 + __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 + __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 + __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 + __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 + __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 + __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 + __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 + __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 + __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 + __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 + __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 + __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 + __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 + __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 + __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 + __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 + __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 + __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 + __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 + __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 + __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 + __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 + __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 + __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 + __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 + __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 + __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 + __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 + __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 + __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 + __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 + __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 + __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 + __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 + __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 + __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 + __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 + __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 + __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 + __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 + __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 + __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 + __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 + __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 + __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 + __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 + __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 + __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 + __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 + __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 + __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 + __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 + __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 + __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 + __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 + __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 + __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 + __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 + __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 + __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 + __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 + __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 + __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 + __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 + __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 + __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 + __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 + __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 + __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 + __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 + __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 + __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 + __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 + __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 + __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 + __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 + __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 + __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 + __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 + __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 + __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 + __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 + __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 + __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 + __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 + __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 + __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 + __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 + __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 + __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 + __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 + __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 + __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 + __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 + __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 + __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 + __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 + __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 + __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 + __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 + __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 + __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 + __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 + __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 + __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 + __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 + __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 + __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 + __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 + __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 + __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 + __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 + __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 + __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 + __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 + __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 + __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 + __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1key-hash-hscan-1K-fields-10B-values tested-groups: - hash tested-commands: @@ -25,10 +277,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HSCAN memtier-1 __key__ COUNT 100" --command-key-pattern="R" --distinct-client-seed --key-prefix "" --key-minimum=1 --key-maximum 1000 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HSCAN memtier-1 __key__ COUNT 100" --command-key-pattern="R" + --distinct-client-seed --key-prefix "" --key-minimum=1 --key-maximum 1000 --test-time + 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml index f58a80f9..396898ca 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-hash-hscan-1K-fields-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes in which the value has a data size of 10 Bytes. The key is expected to be hashtable encoded due to the field count and field size. After pre-loading the data it issues HSCAN command. +description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes + in which the value has a data size of 10 Bytes. The key is expected to be hashtable + encoded due to the field count and field size. After pre-loading the data it issues + HSCAN command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +12,259 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__ field:51 __data__ + field:52 __data__ field:53 __data__ field:54 __data__ field:55 __data__ field:56 + __data__ field:57 __data__ field:58 __data__ field:59 __data__ field:60 __data__ + field:61 __data__ field:62 __data__ field:63 __data__ field:64 __data__ field:65 + __data__ field:66 __data__ field:67 __data__ field:68 __data__ field:69 __data__ + field:70 __data__ field:71 __data__ field:72 __data__ field:73 __data__ field:74 + __data__ field:75 __data__ field:76 __data__ field:77 __data__ field:78 __data__ + field:79 __data__ field:80 __data__ field:81 __data__ field:82 __data__ field:83 + __data__ field:84 __data__ field:85 __data__ field:86 __data__ field:87 __data__ + field:88 __data__ field:89 __data__ field:90 __data__ field:91 __data__ field:92 + __data__ field:93 __data__ field:94 __data__ field:95 __data__ field:96 __data__ + field:97 __data__ field:98 __data__ field:99 __data__ field:100 __data__ field:101 + __data__ field:102 __data__ field:103 __data__ field:104 __data__ field:105 + __data__ field:106 __data__ field:107 __data__ field:108 __data__ field:109 + __data__ field:110 __data__ field:111 __data__ field:112 __data__ field:113 + __data__ field:114 __data__ field:115 __data__ field:116 __data__ field:117 + __data__ field:118 __data__ field:119 __data__ field:120 __data__ field:121 + __data__ field:122 __data__ field:123 __data__ field:124 __data__ field:125 + __data__ field:126 __data__ field:127 __data__ field:128 __data__ field:129 + __data__ field:130 __data__ field:131 __data__ field:132 __data__ field:133 + __data__ field:134 __data__ field:135 __data__ field:136 __data__ field:137 + __data__ field:138 __data__ field:139 __data__ field:140 __data__ field:141 + __data__ field:142 __data__ field:143 __data__ field:144 __data__ field:145 + __data__ field:146 __data__ field:147 __data__ field:148 __data__ field:149 + __data__ field:150 __data__ field:151 __data__ field:152 __data__ field:153 + __data__ field:154 __data__ field:155 __data__ field:156 __data__ field:157 + __data__ field:158 __data__ field:159 __data__ field:160 __data__ field:161 + __data__ field:162 __data__ field:163 __data__ field:164 __data__ field:165 + __data__ field:166 __data__ field:167 __data__ field:168 __data__ field:169 + __data__ field:170 __data__ field:171 __data__ field:172 __data__ field:173 + __data__ field:174 __data__ field:175 __data__ field:176 __data__ field:177 + __data__ field:178 __data__ field:179 __data__ field:180 __data__ field:181 + __data__ field:182 __data__ field:183 __data__ field:184 __data__ field:185 + __data__ field:186 __data__ field:187 __data__ field:188 __data__ field:189 + __data__ field:190 __data__ field:191 __data__ field:192 __data__ field:193 + __data__ field:194 __data__ field:195 __data__ field:196 __data__ field:197 + __data__ field:198 __data__ field:199 __data__ field:200 __data__ field:201 + __data__ field:202 __data__ field:203 __data__ field:204 __data__ field:205 + __data__ field:206 __data__ field:207 __data__ field:208 __data__ field:209 + __data__ field:210 __data__ field:211 __data__ field:212 __data__ field:213 + __data__ field:214 __data__ field:215 __data__ field:216 __data__ field:217 + __data__ field:218 __data__ field:219 __data__ field:220 __data__ field:221 + __data__ field:222 __data__ field:223 __data__ field:224 __data__ field:225 + __data__ field:226 __data__ field:227 __data__ field:228 __data__ field:229 + __data__ field:230 __data__ field:231 __data__ field:232 __data__ field:233 + __data__ field:234 __data__ field:235 __data__ field:236 __data__ field:237 + __data__ field:238 __data__ field:239 __data__ field:240 __data__ field:241 + __data__ field:242 __data__ field:243 __data__ field:244 __data__ field:245 + __data__ field:246 __data__ field:247 __data__ field:248 __data__ field:249 + __data__ field:250 __data__ field:251 __data__ field:252 __data__ field:253 + __data__ field:254 __data__ field:255 __data__ field:256 __data__ field:257 + __data__ field:258 __data__ field:259 __data__ field:260 __data__ field:261 + __data__ field:262 __data__ field:263 __data__ field:264 __data__ field:265 + __data__ field:266 __data__ field:267 __data__ field:268 __data__ field:269 + __data__ field:270 __data__ field:271 __data__ field:272 __data__ field:273 + __data__ field:274 __data__ field:275 __data__ field:276 __data__ field:277 + __data__ field:278 __data__ field:279 __data__ field:280 __data__ field:281 + __data__ field:282 __data__ field:283 __data__ field:284 __data__ field:285 + __data__ field:286 __data__ field:287 __data__ field:288 __data__ field:289 + __data__ field:290 __data__ field:291 __data__ field:292 __data__ field:293 + __data__ field:294 __data__ field:295 __data__ field:296 __data__ field:297 + __data__ field:298 __data__ field:299 __data__ field:300 __data__ field:301 + __data__ field:302 __data__ field:303 __data__ field:304 __data__ field:305 + __data__ field:306 __data__ field:307 __data__ field:308 __data__ field:309 + __data__ field:310 __data__ field:311 __data__ field:312 __data__ field:313 + __data__ field:314 __data__ field:315 __data__ field:316 __data__ field:317 + __data__ field:318 __data__ field:319 __data__ field:320 __data__ field:321 + __data__ field:322 __data__ field:323 __data__ field:324 __data__ field:325 + __data__ field:326 __data__ field:327 __data__ field:328 __data__ field:329 + __data__ field:330 __data__ field:331 __data__ field:332 __data__ field:333 + __data__ field:334 __data__ field:335 __data__ field:336 __data__ field:337 + __data__ field:338 __data__ field:339 __data__ field:340 __data__ field:341 + __data__ field:342 __data__ field:343 __data__ field:344 __data__ field:345 + __data__ field:346 __data__ field:347 __data__ field:348 __data__ field:349 + __data__ field:350 __data__ field:351 __data__ field:352 __data__ field:353 + __data__ field:354 __data__ field:355 __data__ field:356 __data__ field:357 + __data__ field:358 __data__ field:359 __data__ field:360 __data__ field:361 + __data__ field:362 __data__ field:363 __data__ field:364 __data__ field:365 + __data__ field:366 __data__ field:367 __data__ field:368 __data__ field:369 + __data__ field:370 __data__ field:371 __data__ field:372 __data__ field:373 + __data__ field:374 __data__ field:375 __data__ field:376 __data__ field:377 + __data__ field:378 __data__ field:379 __data__ field:380 __data__ field:381 + __data__ field:382 __data__ field:383 __data__ field:384 __data__ field:385 + __data__ field:386 __data__ field:387 __data__ field:388 __data__ field:389 + __data__ field:390 __data__ field:391 __data__ field:392 __data__ field:393 + __data__ field:394 __data__ field:395 __data__ field:396 __data__ field:397 + __data__ field:398 __data__ field:399 __data__ field:400 __data__ field:401 + __data__ field:402 __data__ field:403 __data__ field:404 __data__ field:405 + __data__ field:406 __data__ field:407 __data__ field:408 __data__ field:409 + __data__ field:410 __data__ field:411 __data__ field:412 __data__ field:413 + __data__ field:414 __data__ field:415 __data__ field:416 __data__ field:417 + __data__ field:418 __data__ field:419 __data__ field:420 __data__ field:421 + __data__ field:422 __data__ field:423 __data__ field:424 __data__ field:425 + __data__ field:426 __data__ field:427 __data__ field:428 __data__ field:429 + __data__ field:430 __data__ field:431 __data__ field:432 __data__ field:433 + __data__ field:434 __data__ field:435 __data__ field:436 __data__ field:437 + __data__ field:438 __data__ field:439 __data__ field:440 __data__ field:441 + __data__ field:442 __data__ field:443 __data__ field:444 __data__ field:445 + __data__ field:446 __data__ field:447 __data__ field:448 __data__ field:449 + __data__ field:450 __data__ field:451 __data__ field:452 __data__ field:453 + __data__ field:454 __data__ field:455 __data__ field:456 __data__ field:457 + __data__ field:458 __data__ field:459 __data__ field:460 __data__ field:461 + __data__ field:462 __data__ field:463 __data__ field:464 __data__ field:465 + __data__ field:466 __data__ field:467 __data__ field:468 __data__ field:469 + __data__ field:470 __data__ field:471 __data__ field:472 __data__ field:473 + __data__ field:474 __data__ field:475 __data__ field:476 __data__ field:477 + __data__ field:478 __data__ field:479 __data__ field:480 __data__ field:481 + __data__ field:482 __data__ field:483 __data__ field:484 __data__ field:485 + __data__ field:486 __data__ field:487 __data__ field:488 __data__ field:489 + __data__ field:490 __data__ field:491 __data__ field:492 __data__ field:493 + __data__ field:494 __data__ field:495 __data__ field:496 __data__ field:497 + __data__ field:498 __data__ field:499 __data__ field:500 __data__ field:501 + __data__ field:502 __data__ field:503 __data__ field:504 __data__ field:505 + __data__ field:506 __data__ field:507 __data__ field:508 __data__ field:509 + __data__ field:510 __data__ field:511 __data__ field:512 __data__ field:513 + __data__ field:514 __data__ field:515 __data__ field:516 __data__ field:517 + __data__ field:518 __data__ field:519 __data__ field:520 __data__ field:521 + __data__ field:522 __data__ field:523 __data__ field:524 __data__ field:525 + __data__ field:526 __data__ field:527 __data__ field:528 __data__ field:529 + __data__ field:530 __data__ field:531 __data__ field:532 __data__ field:533 + __data__ field:534 __data__ field:535 __data__ field:536 __data__ field:537 + __data__ field:538 __data__ field:539 __data__ field:540 __data__ field:541 + __data__ field:542 __data__ field:543 __data__ field:544 __data__ field:545 + __data__ field:546 __data__ field:547 __data__ field:548 __data__ field:549 + __data__ field:550 __data__ field:551 __data__ field:552 __data__ field:553 + __data__ field:554 __data__ field:555 __data__ field:556 __data__ field:557 + __data__ field:558 __data__ field:559 __data__ field:560 __data__ field:561 + __data__ field:562 __data__ field:563 __data__ field:564 __data__ field:565 + __data__ field:566 __data__ field:567 __data__ field:568 __data__ field:569 + __data__ field:570 __data__ field:571 __data__ field:572 __data__ field:573 + __data__ field:574 __data__ field:575 __data__ field:576 __data__ field:577 + __data__ field:578 __data__ field:579 __data__ field:580 __data__ field:581 + __data__ field:582 __data__ field:583 __data__ field:584 __data__ field:585 + __data__ field:586 __data__ field:587 __data__ field:588 __data__ field:589 + __data__ field:590 __data__ field:591 __data__ field:592 __data__ field:593 + __data__ field:594 __data__ field:595 __data__ field:596 __data__ field:597 + __data__ field:598 __data__ field:599 __data__ field:600 __data__ field:601 + __data__ field:602 __data__ field:603 __data__ field:604 __data__ field:605 + __data__ field:606 __data__ field:607 __data__ field:608 __data__ field:609 + __data__ field:610 __data__ field:611 __data__ field:612 __data__ field:613 + __data__ field:614 __data__ field:615 __data__ field:616 __data__ field:617 + __data__ field:618 __data__ field:619 __data__ field:620 __data__ field:621 + __data__ field:622 __data__ field:623 __data__ field:624 __data__ field:625 + __data__ field:626 __data__ field:627 __data__ field:628 __data__ field:629 + __data__ field:630 __data__ field:631 __data__ field:632 __data__ field:633 + __data__ field:634 __data__ field:635 __data__ field:636 __data__ field:637 + __data__ field:638 __data__ field:639 __data__ field:640 __data__ field:641 + __data__ field:642 __data__ field:643 __data__ field:644 __data__ field:645 + __data__ field:646 __data__ field:647 __data__ field:648 __data__ field:649 + __data__ field:650 __data__ field:651 __data__ field:652 __data__ field:653 + __data__ field:654 __data__ field:655 __data__ field:656 __data__ field:657 + __data__ field:658 __data__ field:659 __data__ field:660 __data__ field:661 + __data__ field:662 __data__ field:663 __data__ field:664 __data__ field:665 + __data__ field:666 __data__ field:667 __data__ field:668 __data__ field:669 + __data__ field:670 __data__ field:671 __data__ field:672 __data__ field:673 + __data__ field:674 __data__ field:675 __data__ field:676 __data__ field:677 + __data__ field:678 __data__ field:679 __data__ field:680 __data__ field:681 + __data__ field:682 __data__ field:683 __data__ field:684 __data__ field:685 + __data__ field:686 __data__ field:687 __data__ field:688 __data__ field:689 + __data__ field:690 __data__ field:691 __data__ field:692 __data__ field:693 + __data__ field:694 __data__ field:695 __data__ field:696 __data__ field:697 + __data__ field:698 __data__ field:699 __data__ field:700 __data__ field:701 + __data__ field:702 __data__ field:703 __data__ field:704 __data__ field:705 + __data__ field:706 __data__ field:707 __data__ field:708 __data__ field:709 + __data__ field:710 __data__ field:711 __data__ field:712 __data__ field:713 + __data__ field:714 __data__ field:715 __data__ field:716 __data__ field:717 + __data__ field:718 __data__ field:719 __data__ field:720 __data__ field:721 + __data__ field:722 __data__ field:723 __data__ field:724 __data__ field:725 + __data__ field:726 __data__ field:727 __data__ field:728 __data__ field:729 + __data__ field:730 __data__ field:731 __data__ field:732 __data__ field:733 + __data__ field:734 __data__ field:735 __data__ field:736 __data__ field:737 + __data__ field:738 __data__ field:739 __data__ field:740 __data__ field:741 + __data__ field:742 __data__ field:743 __data__ field:744 __data__ field:745 + __data__ field:746 __data__ field:747 __data__ field:748 __data__ field:749 + __data__ field:750 __data__ field:751 __data__ field:752 __data__ field:753 + __data__ field:754 __data__ field:755 __data__ field:756 __data__ field:757 + __data__ field:758 __data__ field:759 __data__ field:760 __data__ field:761 + __data__ field:762 __data__ field:763 __data__ field:764 __data__ field:765 + __data__ field:766 __data__ field:767 __data__ field:768 __data__ field:769 + __data__ field:770 __data__ field:771 __data__ field:772 __data__ field:773 + __data__ field:774 __data__ field:775 __data__ field:776 __data__ field:777 + __data__ field:778 __data__ field:779 __data__ field:780 __data__ field:781 + __data__ field:782 __data__ field:783 __data__ field:784 __data__ field:785 + __data__ field:786 __data__ field:787 __data__ field:788 __data__ field:789 + __data__ field:790 __data__ field:791 __data__ field:792 __data__ field:793 + __data__ field:794 __data__ field:795 __data__ field:796 __data__ field:797 + __data__ field:798 __data__ field:799 __data__ field:800 __data__ field:801 + __data__ field:802 __data__ field:803 __data__ field:804 __data__ field:805 + __data__ field:806 __data__ field:807 __data__ field:808 __data__ field:809 + __data__ field:810 __data__ field:811 __data__ field:812 __data__ field:813 + __data__ field:814 __data__ field:815 __data__ field:816 __data__ field:817 + __data__ field:818 __data__ field:819 __data__ field:820 __data__ field:821 + __data__ field:822 __data__ field:823 __data__ field:824 __data__ field:825 + __data__ field:826 __data__ field:827 __data__ field:828 __data__ field:829 + __data__ field:830 __data__ field:831 __data__ field:832 __data__ field:833 + __data__ field:834 __data__ field:835 __data__ field:836 __data__ field:837 + __data__ field:838 __data__ field:839 __data__ field:840 __data__ field:841 + __data__ field:842 __data__ field:843 __data__ field:844 __data__ field:845 + __data__ field:846 __data__ field:847 __data__ field:848 __data__ field:849 + __data__ field:850 __data__ field:851 __data__ field:852 __data__ field:853 + __data__ field:854 __data__ field:855 __data__ field:856 __data__ field:857 + __data__ field:858 __data__ field:859 __data__ field:860 __data__ field:861 + __data__ field:862 __data__ field:863 __data__ field:864 __data__ field:865 + __data__ field:866 __data__ field:867 __data__ field:868 __data__ field:869 + __data__ field:870 __data__ field:871 __data__ field:872 __data__ field:873 + __data__ field:874 __data__ field:875 __data__ field:876 __data__ field:877 + __data__ field:878 __data__ field:879 __data__ field:880 __data__ field:881 + __data__ field:882 __data__ field:883 __data__ field:884 __data__ field:885 + __data__ field:886 __data__ field:887 __data__ field:888 __data__ field:889 + __data__ field:890 __data__ field:891 __data__ field:892 __data__ field:893 + __data__ field:894 __data__ field:895 __data__ field:896 __data__ field:897 + __data__ field:898 __data__ field:899 __data__ field:900 __data__ field:901 + __data__ field:902 __data__ field:903 __data__ field:904 __data__ field:905 + __data__ field:906 __data__ field:907 __data__ field:908 __data__ field:909 + __data__ field:910 __data__ field:911 __data__ field:912 __data__ field:913 + __data__ field:914 __data__ field:915 __data__ field:916 __data__ field:917 + __data__ field:918 __data__ field:919 __data__ field:920 __data__ field:921 + __data__ field:922 __data__ field:923 __data__ field:924 __data__ field:925 + __data__ field:926 __data__ field:927 __data__ field:928 __data__ field:929 + __data__ field:930 __data__ field:931 __data__ field:932 __data__ field:933 + __data__ field:934 __data__ field:935 __data__ field:936 __data__ field:937 + __data__ field:938 __data__ field:939 __data__ field:940 __data__ field:941 + __data__ field:942 __data__ field:943 __data__ field:944 __data__ field:945 + __data__ field:946 __data__ field:947 __data__ field:948 __data__ field:949 + __data__ field:950 __data__ field:951 __data__ field:952 __data__ field:953 + __data__ field:954 __data__ field:955 __data__ field:956 __data__ field:957 + __data__ field:958 __data__ field:959 __data__ field:960 __data__ field:961 + __data__ field:962 __data__ field:963 __data__ field:964 __data__ field:965 + __data__ field:966 __data__ field:967 __data__ field:968 __data__ field:969 + __data__ field:970 __data__ field:971 __data__ field:972 __data__ field:973 + __data__ field:974 __data__ field:975 __data__ field:976 __data__ field:977 + __data__ field:978 __data__ field:979 __data__ field:980 __data__ field:981 + __data__ field:982 __data__ field:983 __data__ field:984 __data__ field:985 + __data__ field:986 __data__ field:987 __data__ field:988 __data__ field:989 + __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 + __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 + __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1key-hash-hscan-1K-fields-10B-values tested-groups: - hash tested-commands: @@ -25,10 +277,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HSCAN __key__ 0" --command-key-pattern="R" --key-minimum=1 --key-maximum 1 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HSCAN __key__ 0" --command-key-pattern="R" --key-minimum=1 + --key-maximum 1 --test-time 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml index 8aa79002..7172dba7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-hash-hscan-50-fields-10B-values -description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes in which the value has a data size of 10 Bytes. The key is expected to be listpack encoded due to the field count and field size. After pre-loading the data it issues HSCAN command. +description: Runs memtier_benchmark, for a keyspace length of 1 keys pre-loading HASHes + in which the value has a data size of 10 Bytes. The key is expected to be listpack + encoded due to the field count and field size. After pre-loading the data it issues + HSCAN command. dbconfig: configuration-parameters: save: '""' @@ -9,10 +12,23 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + arguments: '"--data-size" "10" --command "HSET __key__ field:1 __data__ field:2 + __data__ field:3 __data__ field:4 __data__ field:5 __data__ field:6 __data__ + field:7 __data__ field:8 __data__ field:9 __data__ field:10 __data__ field:11 + __data__ field:12 __data__ field:13 __data__ field:14 __data__ field:15 __data__ + field:16 __data__ field:17 __data__ field:18 __data__ field:19 __data__ field:20 + __data__ field:21 __data__ field:22 __data__ field:23 __data__ field:24 __data__ + field:25 __data__ field:26 __data__ field:27 __data__ field:28 __data__ field:29 + __data__ field:30 __data__ field:31 __data__ field:32 __data__ field:33 __data__ + field:34 __data__ field:35 __data__ field:36 __data__ field:37 __data__ field:38 + __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ + field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 + __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' resources: requests: memory: 2g + dataset_name: 1key-hash-hscan-50-fields-10B-values tested-groups: - hash tested-commands: @@ -25,10 +41,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: ' --command "HSCAN __key__ 0" --command-key-pattern="R" --key-minimum=1 --key-maximum 1 --test-time 120 -c 50 -t 4 --hide-histogram' + arguments: ' --command "HSCAN __key__ 0" --command-key-pattern="R" --key-minimum=1 + --key-maximum 1 --test-time 120 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - priority: 96 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml index 0fbb0dac..aa853c3a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,9 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + dataset_name: 1key-list-10-elements tested-groups: - list tested-commands: @@ -23,10 +26,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LRANGE list:10 0 -1" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="LRANGE list:10 0 -1" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml index 5ba0f0f4..e7bedf23 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-10-elements-lrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,9 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + dataset_name: 1key-list-10-elements tested-groups: - list tested-commands: @@ -28,5 +31,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml index ad6bfd39..9153aa1e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 100 integer elements (all of one encoding type: 7BIT_UINT) in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 100 integer elements (all of one encoding type: 7BIT_UINT) in it and we + query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,14 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:100:ints:7BIT_UINT" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" "91" "92" "93" "94" "95" "96" "97" "98" "99"' + - '"LPUSH" "list:100:ints:7BIT_UINT" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" + "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" + "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" + "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" + "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" + "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" + "91" "92" "93" "94" "95" "96" "97" "98" "99"' + dataset_name: 1key-list-100-elements-int-7bit-uint tested-groups: - list tested-commands: @@ -23,10 +32,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LRANGE list:100:ints:7BIT_UINT 0 -1" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="LRANGE list:100:ints:7BIT_UINT 0 -1" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml index ce3b8c12..404bc7f1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 100 integer elements (across all 6 encoding types, meaning 7BIT_UINT 13BIT_INT 16BIT_INT 24BIT_INT 32BIT_INT 64BIT_INT) in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 100 integer elements (across all 6 encoding types, meaning 7BIT_UINT 13BIT_INT + 16BIT_INT 24BIT_INT 32BIT_INT 64BIT_INT) in it and we query it using LRANGE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +13,21 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:100:ints" "0" "7" "14" "21" "28" "35" "42" "49" "56" "63" "70" "77" "84" "91" "98" "105" "112" "-4096" "-3585" "-3074" "-2563" "-2052" "-1541" "-1030" "-519" "-8" "503" "1014" "1525" "2036" "2547" "3058" "3569" "4080" "-32768" "-28673" "-24578" "-20483" "-16388" "-12293" "-8198" "-4103" "-8" "4087" "8182" "12277" "16372" "20467" "24562" "28657" "32752" "-8388608" "-7340033" "-6291458" "-5242883" "-4194308" "-3145733" "-2097158" "-1048583" "-8" "1048567" "2097142" "3145717" "4194292" "5242867" "6291442" "7340017" "8388592" "-2147483648" "-1861152495" "-1574821342" "-1288490189" "-1002159036" "-715827883" "-429496730" "-143165577" "143165576" "429496729" "715827882" "1002159035" "1288490188" "1574821341" "1861152494" "2147483647" "-9223372036854775808" "-7993589098607472367" "-6763806160360168926" "-5534023222112865485" "-4304240283865562044" "-3074457345618258603" "-1844674407370955162" "-614891469123651721" "614891469123651720" "1844674407370955161" "3074457345618258602" "4304240283865562043" "5534023222112865484" "6763806160360168925" "7993589098607472366" "9223372036854775807"' + - '"LPUSH" "list:100:ints" "0" "7" "14" "21" "28" "35" "42" "49" "56" "63" "70" + "77" "84" "91" "98" "105" "112" "-4096" "-3585" "-3074" "-2563" "-2052" "-1541" + "-1030" "-519" "-8" "503" "1014" "1525" "2036" "2547" "3058" "3569" "4080" "-32768" + "-28673" "-24578" "-20483" "-16388" "-12293" "-8198" "-4103" "-8" "4087" "8182" + "12277" "16372" "20467" "24562" "28657" "32752" "-8388608" "-7340033" "-6291458" + "-5242883" "-4194308" "-3145733" "-2097158" "-1048583" "-8" "1048567" "2097142" + "3145717" "4194292" "5242867" "6291442" "7340017" "8388592" "-2147483648" "-1861152495" + "-1574821342" "-1288490189" "-1002159036" "-715827883" "-429496730" "-143165577" + "143165576" "429496729" "715827882" "1002159035" "1288490188" "1574821341" "1861152494" + "2147483647" "-9223372036854775808" "-7993589098607472367" "-6763806160360168926" + "-5534023222112865485" "-4304240283865562044" "-3074457345618258603" "-1844674407370955162" + "-614891469123651721" "614891469123651720" "1844674407370955161" "3074457345618258602" + "4304240283865562043" "5534023222112865484" "6763806160360168925" "7993589098607472366" + "9223372036854775807"' + dataset_name: 1key-list-100-elements-int tested-groups: - list tested-commands: @@ -23,10 +40,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LRANGE list:100:ints 0 -1" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="LRANGE list:100:ints 0 -1" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml index 7f0b7fa4..90917b1e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-100-elements-llen-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 100 elements in it and we query its size using LLEN. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 100 elements in it and we query its size using LLEN. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-list-100-elements-string tested-groups: - list tested-commands: @@ -23,10 +41,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LLEN list:100" --hide-histogram --test-time 60 + arguments: --pipeline 10 --command="LLEN list:100" --hide-histogram --test-time + 60 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml index 2b3a6479..5c7321d8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 100 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 100 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-list-100-elements-string tested-groups: - list tested-commands: @@ -23,10 +41,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LRANGE list:100 0 -1" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="LRANGE list:100 0 -1" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml index ac607603..af563b7b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-100-elements-lrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 100 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 100 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"LPUSH" "list:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-list-100-elements-string tested-groups: - list tested-commands: @@ -28,5 +46,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml index cef6fb8f..811f51fd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-lindex-integer -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 integer elements in it and we query it using LINDEX of a element that we know it is in the middle of the list. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 integer elements in it and we query it using LINDEX of a element + that we know it is in the middle of the list. ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 + --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-integer tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml index 54d70c34..3867a0f6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 string elements in it and we query it using LPOS of a element that we know it is in the middle of the list. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 string elements in it and we query it using LPOS of a element that + we know it is in the middle of the list. ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 + -t 1 --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-string tested-groups: - list tested-commands: @@ -26,7 +31,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="LINDEX strlist 5000" --hide-histogram --test-time 120 --pipeline 10 + arguments: --command="LINDEX strlist 5000" --hide-histogram --test-time 120 --pipeline + 10 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml index 53a12f04..c1275fa4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-lindex-string -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 string elements in it and we query it using LPOS of a element that we know it is in the middle of the list. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 string elements in it and we query it using LPOS of a element that + we know it is in the middle of the list. ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 + -t 1 --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-string tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml index 6480e004..9addca3c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml @@ -1,6 +1,10 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 integer elements in it and we query it using LINSERT / LREM in the middle of the list. Given we add and delete right after the performance and list lenght over the test should be constant (meaning running for 60secs or 600secs wont change the list size) ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 integer elements in it and we query it using LINSERT / LREM in the + middle of the list. Given we add and delete right after the performance and list + lenght over the test should be constant (meaning running for 60secs or 600secs wont + change the list size) ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +13,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 + --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-integer tested-groups: - list tested-commands: @@ -27,7 +34,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="LINSERT intlist AFTER 5000 5001" --command="LREM intlist 1 5001" --hide-histogram --test-time 120 + arguments: --command="LINSERT intlist AFTER 5000 5001" --command="LREM intlist 1 + 5001" --hide-histogram --test-time 120 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml index d666574b..312706b8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml @@ -1,6 +1,10 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-linsert-lrem-string -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 string elements in it and we query it using LINSERT / LREM in the middle of the list. Given we add and delete right after the performance and list lenght over the test should be constant (meaning running for 60secs or 600secs wont change the list size) ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 string elements in it and we query it using LINSERT / LREM in the + middle of the list. Given we add and delete right after the performance and list + lenght over the test should be constant (meaning running for 60secs or 600secs wont + change the list size) ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +13,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 + -t 1 --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-string tested-groups: - list tested-commands: @@ -27,7 +34,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="LINSERT strlist AFTER hello5000 hello5000-new" --command="LREM strlist 1 hello5000-new" --hide-histogram --test-time 120 + arguments: --command="LINSERT strlist AFTER hello5000 hello5000-new" --command="LREM + strlist 1 hello5000-new" --hide-histogram --test-time 120 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml index eb06675b..78219a87 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-lpos-integer -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 integer elements in it and we query it using LPOS of a element that we know it is in the middle of the list. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 integer elements in it and we query it using LPOS of a element that + we know it is in the middle of the list. ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 + --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-integer tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml index c3e2adea..4141551d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-10K-elements-lpos-string -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 10000 string elements in it and we query it using LPOS of a element that we know it is in the middle of the list. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 10000 string elements in it and we query it using LPOS of a element that + we know it is in the middle of the list. ' dbconfig: configuration-parameters: save: '""' @@ -9,11 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 -t 1 --pipeline 10 + arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 + --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 + -t 1 --pipeline 10 resources: requests: cpus: '2' memory: 1g + dataset_name: 1key-list-10K-elements-string tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml index a84dcf82..c8b7e46b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 1000 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 1000 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,174 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + - '"LPUSH" "list:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" + "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" + "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" + "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" + "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" + "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" + "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" + "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" + "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" + "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" + "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" + "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" + "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" + "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" + "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" + "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" + "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" + "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" + "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" + "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" + "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" + "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" + "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" + "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" + "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" + "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" + "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" + "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" + "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" + "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" + "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" + "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" + "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" + "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" + "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" + "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" + "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" + "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" + "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" + "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" + "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" + "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" + "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" + "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" + "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" + "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" + "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" + "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" + "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" + "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" + "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" + "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" + "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" + "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" + "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" + "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" + "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" + "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" + "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" + "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" + "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" + "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" + "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" + "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" + "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" + "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" + "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" + "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" + "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" + "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" + "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" + "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" + "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" + "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" + "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" + "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" + "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" + "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" + "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" + "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" + "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" + "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" + "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" + "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" + "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" + "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" + "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" + "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" + "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" + "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" + "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" + "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" + "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" + "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" + "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" + "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" + "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" + "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" + "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" + "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" + "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" + "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" + "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" + "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" + "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" + "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" + "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" + "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" + "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" + "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" + "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" + "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" + "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" + "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" + "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" + "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" + "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" + "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" + "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" + "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" + "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" + "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" + "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" + "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" + "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" + "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" + "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" + "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" + "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" + "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" + "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" + "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" + "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" + "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" + "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" + "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" + "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" + "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" + "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" + "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" + "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" + "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" + "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" + "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" + "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" + "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" + "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" + "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" + "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" + "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" + "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" + "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" + "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" + "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" + "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" + "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" + "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" + "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" + "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" + "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" + "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" + "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" + "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" + "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" + "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" + "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" + "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + dataset_name: 1key-list-1K-elements tested-groups: - list tested-commands: @@ -23,10 +191,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="LRANGE list:1000 0 -1" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="LRANGE list:1000 0 -1" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml index 8291fd92..019bcd4c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-list-1K-elements-lrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 1000 elements in it and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 1000 elements in it and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,174 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "list:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + - '"LPUSH" "list:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" + "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" + "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" + "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" + "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" + "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" + "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" + "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" + "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" + "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" + "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" + "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" + "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" + "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" + "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" + "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" + "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" + "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" + "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" + "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" + "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" + "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" + "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" + "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" + "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" + "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" + "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" + "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" + "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" + "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" + "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" + "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" + "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" + "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" + "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" + "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" + "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" + "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" + "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" + "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" + "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" + "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" + "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" + "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" + "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" + "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" + "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" + "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" + "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" + "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" + "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" + "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" + "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" + "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" + "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" + "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" + "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" + "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" + "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" + "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" + "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" + "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" + "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" + "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" + "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" + "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" + "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" + "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" + "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" + "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" + "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" + "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" + "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" + "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" + "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" + "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" + "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" + "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" + "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" + "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" + "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" + "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" + "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" + "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" + "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" + "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" + "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" + "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" + "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" + "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" + "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" + "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" + "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" + "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" + "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" + "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" + "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" + "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" + "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" + "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" + "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" + "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" + "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" + "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" + "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" + "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" + "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" + "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" + "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" + "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" + "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" + "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" + "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" + "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" + "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" + "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" + "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" + "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" + "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" + "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" + "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" + "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" + "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" + "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" + "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" + "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" + "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" + "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" + "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" + "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" + "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" + "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" + "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" + "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" + "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" + "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" + "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" + "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" + "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" + "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" + "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" + "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" + "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" + "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" + "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" + "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" + "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" + "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" + "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" + "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" + "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" + "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" + "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" + "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" + "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" + "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" + "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" + "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" + "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" + "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" + "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" + "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" + "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" + "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" + "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" + "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" + "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + dataset_name: 1key-list-1K-elements tested-groups: - list tested-commands: @@ -28,5 +196,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml index c50ddd32..b4aecc4c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs -description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST contains 2000 numeric elements in it (encoding:quicklist serializedlength:9669) and we query it using LRANGE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 LIST key. The LIST + contains 2000 numeric elements in it (encoding:quicklist serializedlength:9669) + and we query it using LRANGE with a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,230 @@ dbconfig: requests: memory: 1g init_commands: - - '"LPUSH" "int:2000" "436858" "768277" "10664" "860016" "865292" "841848" "313147" "896678" "386308" "977048" "203069" "283373" "593503" "457419" "169542" "391186" "130304" "916639" "453967" "273773" "589383" "657683" "182813" "641487" "580095" "195884" "372142" "774005" "768470" "95729" "556839" "771113" "432139" "613472" "528415" "174665" "155343" "215707" "753892" "81624" "199200" "877732" "358153" "337683" "24664" "481128" "356011" "28176" "535519" "724263" "780697" "435661" "3623" "6998" "985912" "696150" "913066" "171765" "808279" "608289" "187563" "300496" "104333" "684239" "434669" "111037" "928553" "714514" "606168" "190478" "772363" "393219" "243921" "549032" "624950" "743846" "957491" "864902" "345918" "846332" "42207" "243593" "125622" "915607" "523476" "226892" "773003" "840853" "792775" "582050" "702242" "194856" "270254" "617201" "454742" "543414" "960526" "136178" "43558" "172112" "315964" "906548" "872631" "9812" "157573" "240243" "366716" "565328" "358579" "164607" "404765" "339488" "13466" "51715" "63848" "746248" "466736" "82380" "406953" "837894" "965288" "188204" "827148" "12278" "809927" "746938" "385617" "225812" "711676" "537420" "798238" "127408" "504131" "652057" "64514" "14489" "656518" "515681" "341585" "809488" "639725" "441271" "967421" "998801" "576518" "211388" "381983" "806205" "695045" "732496" "125181" "583599" "156930" "83935" "518933" "172965" "935860" "351856" "241847" "213126" "171488" "170662" "302300" "157438" "563212" "94997" "544855" "729516" "3494" "153660" "3340" "689632" "520164" "928975" "193834" "875837" "637011" "979170" "837250" "891931" "100531" "277117" "529707" "786457" "425867" "69329" "828851" "787959" "483253" "436961" "190776" "255085" "963573" "921147" "193275" "28601" "391029" "346519" "184509" "413952" "186492" "186630" "599412" "712964" "863478" "543442" "936725" "261034" "433325" "538136" "725493" "437815" "340750" "125982" "70995" "675010" "482873" "779685" "204540" "658657" "651494" "598984" "211697" "785541" "141585" "556755" "937387" "244571" "346333" "595449" "306505" "131451" "564406" "535119" "727064" "808854" "703592" "934789" "837177" "62079" "272563" "814964" "447612" "46180" "381641" "838054" "541786" "561934" "601932" "112792" "659857" "795689" "71255" "163760" "389250" "923106" "742984" "665644" "37044" "288286" "782488" "465661" "719220" "386595" "421309" "322180" "470991" "640024" "277182" "326998" "773033" "516432" "503742" "52811" "278009" "467202" "30779" "230305" "361834" "142680" "965731" "2134" "708990" "655992" "843666" "979246" "87183" "32092" "116456" "631722" "914509" "197081" "904867" "416227" "514356" "190669" "285867" "366090" "218685" "945164" "314729" "760629" "330622" "887402" "407140" "79151" "646816" "315458" "386302" "822253" "906996" "42417" "439624" "198939" "168324" "85834" "149784" "857270" "321402" "243528" "349001" "444903" "210665" "14530" "157184" "119189" "997937" "538965" "33058" "829750" "357593" "411186" "334862" "908574" "42795" "253083" "104455" "508180" "155730" "606487" "216277" "271744" "597530" "558217" "376328" "166080" "777249" "297911" "39860" "897875" "913783" "96233" "98552" "553234" "217399" "576166" "528693" "689225" "430060" "549443" "15953" "815596" "545250" "158967" "617025" "557444" "341163" "616649" "799559" "819669" "943718" "171664" "479697" "434726" "460969" "25763" "389810" "694741" "28682" "910195" "407303" "370701" "706901" "855917" "567185" "689993" "623147" "17867" "334745" "493083" "458903" "47961" "334509" "328438" "408398" "839531" "312968" "131555" "398163" "592833" "652770" "59474" "597960" "115161" "509790" "998417" "124464" "101091" "644649" "182572" "34876" "985741" "53703" "323854" "875562" "227007" "550581" "101142" "482813" "523513" "491884" "61752" "443921" "230743" "946890" "232909" "345530" "781343" "822686" "170006" "401816" "616708" "569667" "253432" "719359" "494477" "968731" "189184" "943807" "218596" "580591" "602277" "976073" "577930" "670942" "224269" "167134" "705443" "767924" "477576" "890542" "795902" "15154" "682212" "204388" "76770" "822399" "943411" "805359" "73138" "587812" "847082" "128252" "99053" "278139" "594384" "247166" "223966" "291110" "236271" "521846" "388102" "769855" "722504" "468434" "695381" "423149" "589502" "261236" "682284" "472491" "907025" "877757" "958352" "528938" "113715" "543301" "31592" "537791" "957970" "566443" "954483" "713962" "385855" "250435" "419113" "517175" "718181" "86422" "441985" "488173" "116422" "343678" "261328" "465793" "318474" "445261" "593700" "130660" "179528" "228553" "764028" "646824" "965387" "403539" "274961" "598019" "923598" "667153" "815111" "836745" "184554" "659674" "5872" "541611" "767738" "755502" "289703" "24909" "845510" "985445" "502599" "942285" "348442" "727521" "661854" "211413" "828765" "655994" "316895" "29491" "762445" "417019" "384854" "225832" "981658" "588501" "262593" "241641" "96764" "964723" "832427" "213940" "263478" "962888" "586899" "6134" "17353" "158687" "590834" "610309" "827589" "973885" "823125" "139784" "344342" "223546" "134642" "878290" "639083" "653249" "321397" "534986" "299701" "30404" "220321" "449561" "412428" "966311" "715345" "609270" "421049" "829395" "677850" "671528" "763180" "692591" "849708" "461540" "598518" "589793" "293581" "526463" "296191" "563278" "76688" "690304" "500480" "890913" "736045" "505988" "961370" "680450" "166370" "943022" "442498" "49813" "737688" "103105" "768309" "943679" "870338" "125027" "279297" "695712" "330005" "931052" "432772" "767508" "411427" "499969" "97202" "408694" "721825" "673594" "127058" "775391" "451832" "241043" "650828" "7650" "787590" "481138" "163078" "657396" "15019" "373244" "167904" "882445" "711911" "282971" "957686" "151461" "406074" "168192" "327154" "338171" "657734" "630014" "331547" "450791" "41116" "371386" "257199" "724255" "629714" "904905" "480039" "28038" "363750" "703912" "411214" "522003" "143780" "636539" "804682" "802249" "392202" "905746" "723491" "874646" "595374" "866243" "943836" "313183" "835134" "574073" "138715" "523132" "473353" "725538" "11689" "488923" "791770" "385455" "241968" "429345" "494715" "236378" "646665" "532900" "356576" "515468" "309836" "867520" "624083" "239700" "923899" "435608" "335167" "958930" "102220" "157225" "194735" "559763" "48533" "797574" "741730" "719386" "992134" "791320" "128917" "818809" "405787" "131239" "388507" "67269" "210144" "691095" "225520" "1203" "100294" "353435" "273505" "616209" "261097" "684122" "564413" "645501" "290340" "995510" "643263" "600889" "325623" "363553" "330294" "410730" "22465" "609238" "126942" "617305" "459460" "461642" "672889" "330853" "247129" "267507" "104264" "179525" "718216" "304029" "704873" "63788" "524692" "134924" "147798" "553464" "206477" "735270" "281124" "221241" "894221" "267607" "971140" "375862" "49454" "83470" "982265" "735342" "957022" "148213" "831380" "777134" "244611" "746281" "46800" "847946" "863788" "146141" "20625" "37523" "150946" "396359" "444989" "607710" "441290" "25850" "181593" "161912" "705482" "534803" "541780" "151296" "515831" "859744" "109838" "373756" "784104" "78507" "777554" "163532" "23518" "75349" "846179" "892004" "371540" "138564" "978458" "378382" "358684" "222153" "308846" "205336" "567811" "347648" "425479" "74171" "347667" "170396" "263500" "495474" "976044" "579019" "177820" "584614" "750432" "138416" "403335" "25805" "465927" "153851" "926901" "943170" "268621" "142965" "807760" "716872" "161996" "582482" "770063" "629222" "265142" "982415" "725188" "268084" "303891" "736676" "2396" "542680" "592046" "386441" "746019" "420580" "579956" "212192" "395017" "105733" "943903" "966110" "114281" "671424" "565450" "178101" "486460" "842126" "526188" "193699" "78651" "694433" "876355" "615143" "114365" "835481" "113034" "432281" "159469" "795151" "754018" "47648" "471006" "667361" "126950" "423807" "270640" "299483" "138778" "549442" "546479" "236104" "845000" "964861" "778232" "184885" "668022" "102659" "447587" "154447" "291991" "255772" "842929" "125548" "703817" "329281" "695841" "415349" "585332" "829060" "775984" "617483" "824172" "276129" "223868" "391686" "409479" "324785" "5495" "305839" "942063" "935498" "746123" "743923" "643435" "454326" "472809" "438795" "508966" "110249" "497493" "497606" "230819" "616372" "48274" "367285" "183124" "531872" "198882" "229429" "957341" "787465" "80765" "947148" "991977" "833074" "611099" "851759" "904236" "843689" "581597" "218789" "186052" "138432" "183882" "673112" "4885" "868094" "923298" "106934" "135257" "15080" "955761" "992980" "793990" "954226" "61549" "274140" "127960" "869322" "559015" "313089" "882398" "854039" "13603" "504924" "637944" "613051" "235674" "354898" "666751" "97666" "26282" "13685" "678666" "431954" "104637" "324147" "465170" "73372" "77033" "402233" "998197" "163570" "473102" "343904" "492371" "775728" "691132" "150719" "664393" "869873" "548970" "393512" "894173" "260596" "430775" "896965" "151153" "453583" "718570" "878052" "374524" "737877" "980178" "236181" "409143" "993943" "14522" "484145" "360559" "124255" "732000" "501206" "949780" "862822" "938958" "385832" "125612" "637972" "286567" "79608" "551571" "212315" "27596" "109087" "422064" "687569" "339144" "584902" "518482" "680284" "191122" "251585" "786171" "281184" "448343" "25778" "154452" "127576" "179129" "399977" "244880" "942914" "114249" "197419" "762760" "427612" "689058" "13446" "197047" "617382" "468553" "441250" "526814" "347288" "590899" "408774" "440592" "285978" "964368" "427906" "56544" "193750" "687953" "747169" "751240" "978464" "950854" "101749" "384224" "464568" "12193" "322488" "806262" "51216" "483967" "694052" "571729" "858272" "687651" "108996" "851029" "798032" "543103" "468700" "455526" "845363" "137842" "945342" "43892" "89654" "173445" "850867" "162179" "460098" "986502" "995786" "594388" "459654" "28767" "333682" "899804" "431997" "342609" "875010" "360179" "433351" "588695" "573381" "512284" "276877" "665923" "338840" "444580" "83622" "188195" "820966" "260683" "512728" "505349" "766922" "799570" "599960" "561767" "93319" "354922" "281904" "570250" "335720" "844468" "821197" "506060" "363316" "578049" "835386" "324902" "724311" "897487" "557416" "370237" "726012" "190847" "355177" "78247" "107195" "480402" "899952" "454722" "481867" "828252" "472809" "767536" "746592" "602279" "213927" "447823" "234091" "719459" "802159" "254152" "857357" "370351" "481641" "335166" "456907" "858324" "426628" "995971" "550711" "101900" "825364" "25696" "745514" "369825" "765734" "715784" "960486" "459013" "888466" "796973" "23581" "840099" "698651" "254598" "698439" "39533" "150115" "391365" "613458" "893648" "658090" "206" "204695" "849953" "27158" "304939" "711157" "415570" "525577" "678086" "188982" "210530" "723510" "912691" "347506" "333025" "873778" "357894" "442791" "852967" "256734" "832694" "202737" "976378" "489591" "927714" "873157" "2480" "244498" "239854" "933261" "611173" "882131" "243037" "831814" "892423" "464912" "772106" "185102" "792763" "43005" "989772" "984388" "742051" "878505" "977607" "489160" "145427" "142443" "488942" "541697" "697998" "994816" "369740" "644061" "238271" "337807" "31036" "103295" "166257" "140670" "913070" "128570" "812550" "745207" "126098" "344378" "624333" "455719" "606721" "931708" "348265" "813934" "685249" "532890" "366014" "221043" "404351" "90146" "447211" "207252" "466164" "217310" "122566" "167407" "672951" "184497" "583254" "390128" "117071" "841532" "130359" "675415" "288278" "149526" "357187" "974691" "818566" "233201" "530778" "897625" "594077" "801548" "501295" "788175" "30833" "278263" "291644" "510794" "348752" "849821" "380" "925727" "344006" "908190" "785920" "838529" "530522" "690199" "588303" "27379" "785469" "383490" "638271" "743507" "805563" "254750" "23238" "66029" "745248" "622830" "180482" "805662" "229401" "379518" "763586" "306579" "470495" "485359" "33598" "38483" "712936" "825163" "935757" "933384" "543169" "73879" "589993" "592692" "96682" "821917" "336376" "229347" "620859" "446406" "841913" "340322" "542457" "872158" "16602" "616773" "113223" "581906" "907169" "210702" "650574" "728867" "316546" "143635" "140111" "440872" "614041" "929576" "910079" "990389" "740652" "203052" "787838" "948421" "900834" "491510" "345824" "172437" "439399" "939929" "387869" "996403" "806416" "138232" "375872" "963706" "235842" "468692" "969600" "792635" "747412" "930525" "970457" "449395" "764849" "930419" "518950" "765480" "782532" "859711" "316555" "967687" "261794" "450615" "88211" "964528" "258829" "433808" "897408" "192646" "568511" "610645" "671995" "537064" "10240" "635743" "355900" "762299" "288343" "508340" "12581" "714893" "328243" "448759" "269690" "507144" "114056" "946330" "268021" "353766" "902165" "789237" "225994" "572361" "733874" "7696" "843334" "9522" "681526" "745629" "392195" "140944" "167108" "193793" "690507" "322899" "422146" "962516" "532958" "918815" "730553" "96216" "475060" "828504" "621930" "88688" "376122" "398985" "954839" "922355" "748095" "115077" "593029" "594620" "790334" "441002" "79269" "707899" "113754" "900374" "739919" "584750" "175924" "977413" "37614" "939940" "706468" "171416" "329174" "59726" "207604" "260734" "532584" "865515" "728734" "735348" "895831" "635682" "766592" "221545" "686124" "660747" "630170" "115654" "685879" "734822" "419547" "157176" "694996" "387476" "876883" "729571" "898065" "397562" "753513" "297404" "708434" "826676" "75853" "26005" "343896" "333053" "477743" "105157" "321972" "1777" "207890" "290282" "392874" "785708" "873966" "31258" "280195" "379704" "980980" "656817" "6636" "465046" "442454" "980961" "756339" "538514" "791502" "507898" "12513" "536783" "120748" "999694" "74234" "551400" "592610" "797388" "99316" "933810" "415627" "791232" "295938" "878879" "107456" "672360" "392896" "772125" "456668" "97423" "606461" "993629" "362044" "436856" "72245" "981185" "344946" "564508" "727816" "789824" "3752" "641587" "547181" "353045" "20472" "906194" "876436" "206216" "429327" "559539" "690947" "95807" "331000" "573885" "279467" "831349" "959010" "348561" "828074" "711861" "937102" "314394" "8159" "509066" "844930" "191277" "51393" "404553" "912846" "302410" "940963" "752508" "190595" "635784" "887340" "768839" "785928" "90979" "847516" "905373" "91658" "771465" "250338" "546981" "283192" "885354" "720984" "412719" "11421" "404639" "850960" "526370" "920476" "789896" "889196" "880624" "406033" "886159" "932090" "297019" "77356" "54957" "967005" "98905" "120537" "669093" "781905" "888655" "88345" "244648" "793235" "158380" "1880" "997435" "720273" "790707" "259329" "207961" "676275" "194071" "797221" "369744" "686353" "334838" "77591" "248908" "21745" "812755" "401269" "374677" "951067" "82288" "487047" "206191" "275554" "573399" "493517" "682412" "860311" "789801" "217148" "442980" "129400" "211218" "963082" "860262" "444686" "849664" "465355" "614234" "326015" "486560" "256339" "424955" "903818" "384078" "841476" "541236" "266398" "795277" "760195" "628673" "963685" "412289" "438029" "582559" "661075" "95219" "10937" "878425" "347897" "892134" "120635" "264505" "846649" "290280" "539001" "285179" "682180" "143233" "529757" "850505" "693382" "732301" "450287" "826296" "476027" "673305" "947915" "274100" "984141" "91378" "406247" "271022" "269329" "826607" "427211" "20595" "535122" "559352" "555950" "337036" "404636" "302526" "166927" "351020" "620375" "177142" "251314" "166774" "895630" "890837" "382425" "791133" "123000" "377233" "199283" "260869" "430873" "612958" "149529" "977780" "370697" "826403" "61006" "464623" "956248" "665395" "629503" "376698" "891458" "743760" "78866" "543073" "719415" "28507" "521192" "706681" "731643" "913918" "508266" "88980" "167819" "891569" "318108" "632362" "201735" "695424" "880752" "765530" "771144" "561870" "311795" "231513" "317246" "846380" "132453" "564900" "461651" "917281" "163346" "793676" "88116" "981004" "375849" "78002" "907014" "970486" "22286" "957191" "187867" "850220" "591767" "134351" "911062" "54627" "93596" "776304" "776765" "539553" "193826" "359592" "785322" "921109" "741965" "627600" "338720" "855517" "86241" "961175" "18237" "82726" "736102" "854389" "309988" "400899" "138634" "462084" "321932" "904130" "484499" "447430" "888222" "267465" "497203" "165038" "135024" "994782" "868720" "90563" "707232" "420861" "572497" "404086" "942012" "359142" "424944" "749342" "405944" "932438" "57421" "1305" "729552" "263400" "651922" "294097" "993521" "263775" "8221" "193880" "432929" "812550" "458637" "836186" "435509" "166568" "45424" "854179" "45059" "834958" "671276" "991042" "327711" "564956" "445253" "516025" "878649" "494492" "214104" "239669" "536347" "834771" "279680" "639725" "404544" "570636" "657509" "699763" "296883" "100103" "907577" "663391" "428452" "694338" "922759" "71041" "985029" "355437" "892103" "806393" "831646" "597304" "824636" "116999" "524421" "842200" "959812" "818450" "162541" "779846" "412451" "752837" "65805" "269713" "680299" "135975" "361635" "148663" "49393" "586298" "121080" "941478" "325948" "276568" "985304" "220210" "443002" "752592" "695348" "832898" "958642" "987458" "615837" "684254" "962518" "56465" "970921" "861063" "299862" "363704" "590891" "180167" "755905" "225058" "319265" "578165" "492509" "151812" "347595" "536595" "802115" "581882" "741440" "788630" "391383" "200340" "770182" "578419" "532476" "52060" "449750" "46849" "23722" "567305" "45369" "183051" "658297" "288096" "822460" "421785" "779849" "265382" "985124" "273796" "935430" "323648" "90497" "523445" "414032" "219357" "241796" "181029" "265848" "44975" "544700" "960117" "979088" "821091" "745289" "870898" "772669" "156821" "339467" "462864" "663633" "704102" "446816" "557140" "50699" "767901" "52426" "203649" "70161"' + - '"LPUSH" "int:2000" "436858" "768277" "10664" "860016" "865292" "841848" "313147" + "896678" "386308" "977048" "203069" "283373" "593503" "457419" "169542" "391186" + "130304" "916639" "453967" "273773" "589383" "657683" "182813" "641487" "580095" + "195884" "372142" "774005" "768470" "95729" "556839" "771113" "432139" "613472" + "528415" "174665" "155343" "215707" "753892" "81624" "199200" "877732" "358153" + "337683" "24664" "481128" "356011" "28176" "535519" "724263" "780697" "435661" + "3623" "6998" "985912" "696150" "913066" "171765" "808279" "608289" "187563" "300496" + "104333" "684239" "434669" "111037" "928553" "714514" "606168" "190478" "772363" + "393219" "243921" "549032" "624950" "743846" "957491" "864902" "345918" "846332" + "42207" "243593" "125622" "915607" "523476" "226892" "773003" "840853" "792775" + "582050" "702242" "194856" "270254" "617201" "454742" "543414" "960526" "136178" + "43558" "172112" "315964" "906548" "872631" "9812" "157573" "240243" "366716" + "565328" "358579" "164607" "404765" "339488" "13466" "51715" "63848" "746248" + "466736" "82380" "406953" "837894" "965288" "188204" "827148" "12278" "809927" + "746938" "385617" "225812" "711676" "537420" "798238" "127408" "504131" "652057" + "64514" "14489" "656518" "515681" "341585" "809488" "639725" "441271" "967421" + "998801" "576518" "211388" "381983" "806205" "695045" "732496" "125181" "583599" + "156930" "83935" "518933" "172965" "935860" "351856" "241847" "213126" "171488" + "170662" "302300" "157438" "563212" "94997" "544855" "729516" "3494" "153660" + "3340" "689632" "520164" "928975" "193834" "875837" "637011" "979170" "837250" + "891931" "100531" "277117" "529707" "786457" "425867" "69329" "828851" "787959" + "483253" "436961" "190776" "255085" "963573" "921147" "193275" "28601" "391029" + "346519" "184509" "413952" "186492" "186630" "599412" "712964" "863478" "543442" + "936725" "261034" "433325" "538136" "725493" "437815" "340750" "125982" "70995" + "675010" "482873" "779685" "204540" "658657" "651494" "598984" "211697" "785541" + "141585" "556755" "937387" "244571" "346333" "595449" "306505" "131451" "564406" + "535119" "727064" "808854" "703592" "934789" "837177" "62079" "272563" "814964" + "447612" "46180" "381641" "838054" "541786" "561934" "601932" "112792" "659857" + "795689" "71255" "163760" "389250" "923106" "742984" "665644" "37044" "288286" + "782488" "465661" "719220" "386595" "421309" "322180" "470991" "640024" "277182" + "326998" "773033" "516432" "503742" "52811" "278009" "467202" "30779" "230305" + "361834" "142680" "965731" "2134" "708990" "655992" "843666" "979246" "87183" + "32092" "116456" "631722" "914509" "197081" "904867" "416227" "514356" "190669" + "285867" "366090" "218685" "945164" "314729" "760629" "330622" "887402" "407140" + "79151" "646816" "315458" "386302" "822253" "906996" "42417" "439624" "198939" + "168324" "85834" "149784" "857270" "321402" "243528" "349001" "444903" "210665" + "14530" "157184" "119189" "997937" "538965" "33058" "829750" "357593" "411186" + "334862" "908574" "42795" "253083" "104455" "508180" "155730" "606487" "216277" + "271744" "597530" "558217" "376328" "166080" "777249" "297911" "39860" "897875" + "913783" "96233" "98552" "553234" "217399" "576166" "528693" "689225" "430060" + "549443" "15953" "815596" "545250" "158967" "617025" "557444" "341163" "616649" + "799559" "819669" "943718" "171664" "479697" "434726" "460969" "25763" "389810" + "694741" "28682" "910195" "407303" "370701" "706901" "855917" "567185" "689993" + "623147" "17867" "334745" "493083" "458903" "47961" "334509" "328438" "408398" + "839531" "312968" "131555" "398163" "592833" "652770" "59474" "597960" "115161" + "509790" "998417" "124464" "101091" "644649" "182572" "34876" "985741" "53703" + "323854" "875562" "227007" "550581" "101142" "482813" "523513" "491884" "61752" + "443921" "230743" "946890" "232909" "345530" "781343" "822686" "170006" "401816" + "616708" "569667" "253432" "719359" "494477" "968731" "189184" "943807" "218596" + "580591" "602277" "976073" "577930" "670942" "224269" "167134" "705443" "767924" + "477576" "890542" "795902" "15154" "682212" "204388" "76770" "822399" "943411" + "805359" "73138" "587812" "847082" "128252" "99053" "278139" "594384" "247166" + "223966" "291110" "236271" "521846" "388102" "769855" "722504" "468434" "695381" + "423149" "589502" "261236" "682284" "472491" "907025" "877757" "958352" "528938" + "113715" "543301" "31592" "537791" "957970" "566443" "954483" "713962" "385855" + "250435" "419113" "517175" "718181" "86422" "441985" "488173" "116422" "343678" + "261328" "465793" "318474" "445261" "593700" "130660" "179528" "228553" "764028" + "646824" "965387" "403539" "274961" "598019" "923598" "667153" "815111" "836745" + "184554" "659674" "5872" "541611" "767738" "755502" "289703" "24909" "845510" + "985445" "502599" "942285" "348442" "727521" "661854" "211413" "828765" "655994" + "316895" "29491" "762445" "417019" "384854" "225832" "981658" "588501" "262593" + "241641" "96764" "964723" "832427" "213940" "263478" "962888" "586899" "6134" + "17353" "158687" "590834" "610309" "827589" "973885" "823125" "139784" "344342" + "223546" "134642" "878290" "639083" "653249" "321397" "534986" "299701" "30404" + "220321" "449561" "412428" "966311" "715345" "609270" "421049" "829395" "677850" + "671528" "763180" "692591" "849708" "461540" "598518" "589793" "293581" "526463" + "296191" "563278" "76688" "690304" "500480" "890913" "736045" "505988" "961370" + "680450" "166370" "943022" "442498" "49813" "737688" "103105" "768309" "943679" + "870338" "125027" "279297" "695712" "330005" "931052" "432772" "767508" "411427" + "499969" "97202" "408694" "721825" "673594" "127058" "775391" "451832" "241043" + "650828" "7650" "787590" "481138" "163078" "657396" "15019" "373244" "167904" + "882445" "711911" "282971" "957686" "151461" "406074" "168192" "327154" "338171" + "657734" "630014" "331547" "450791" "41116" "371386" "257199" "724255" "629714" + "904905" "480039" "28038" "363750" "703912" "411214" "522003" "143780" "636539" + "804682" "802249" "392202" "905746" "723491" "874646" "595374" "866243" "943836" + "313183" "835134" "574073" "138715" "523132" "473353" "725538" "11689" "488923" + "791770" "385455" "241968" "429345" "494715" "236378" "646665" "532900" "356576" + "515468" "309836" "867520" "624083" "239700" "923899" "435608" "335167" "958930" + "102220" "157225" "194735" "559763" "48533" "797574" "741730" "719386" "992134" + "791320" "128917" "818809" "405787" "131239" "388507" "67269" "210144" "691095" + "225520" "1203" "100294" "353435" "273505" "616209" "261097" "684122" "564413" + "645501" "290340" "995510" "643263" "600889" "325623" "363553" "330294" "410730" + "22465" "609238" "126942" "617305" "459460" "461642" "672889" "330853" "247129" + "267507" "104264" "179525" "718216" "304029" "704873" "63788" "524692" "134924" + "147798" "553464" "206477" "735270" "281124" "221241" "894221" "267607" "971140" + "375862" "49454" "83470" "982265" "735342" "957022" "148213" "831380" "777134" + "244611" "746281" "46800" "847946" "863788" "146141" "20625" "37523" "150946" + "396359" "444989" "607710" "441290" "25850" "181593" "161912" "705482" "534803" + "541780" "151296" "515831" "859744" "109838" "373756" "784104" "78507" "777554" + "163532" "23518" "75349" "846179" "892004" "371540" "138564" "978458" "378382" + "358684" "222153" "308846" "205336" "567811" "347648" "425479" "74171" "347667" + "170396" "263500" "495474" "976044" "579019" "177820" "584614" "750432" "138416" + "403335" "25805" "465927" "153851" "926901" "943170" "268621" "142965" "807760" + "716872" "161996" "582482" "770063" "629222" "265142" "982415" "725188" "268084" + "303891" "736676" "2396" "542680" "592046" "386441" "746019" "420580" "579956" + "212192" "395017" "105733" "943903" "966110" "114281" "671424" "565450" "178101" + "486460" "842126" "526188" "193699" "78651" "694433" "876355" "615143" "114365" + "835481" "113034" "432281" "159469" "795151" "754018" "47648" "471006" "667361" + "126950" "423807" "270640" "299483" "138778" "549442" "546479" "236104" "845000" + "964861" "778232" "184885" "668022" "102659" "447587" "154447" "291991" "255772" + "842929" "125548" "703817" "329281" "695841" "415349" "585332" "829060" "775984" + "617483" "824172" "276129" "223868" "391686" "409479" "324785" "5495" "305839" + "942063" "935498" "746123" "743923" "643435" "454326" "472809" "438795" "508966" + "110249" "497493" "497606" "230819" "616372" "48274" "367285" "183124" "531872" + "198882" "229429" "957341" "787465" "80765" "947148" "991977" "833074" "611099" + "851759" "904236" "843689" "581597" "218789" "186052" "138432" "183882" "673112" + "4885" "868094" "923298" "106934" "135257" "15080" "955761" "992980" "793990" + "954226" "61549" "274140" "127960" "869322" "559015" "313089" "882398" "854039" + "13603" "504924" "637944" "613051" "235674" "354898" "666751" "97666" "26282" + "13685" "678666" "431954" "104637" "324147" "465170" "73372" "77033" "402233" + "998197" "163570" "473102" "343904" "492371" "775728" "691132" "150719" "664393" + "869873" "548970" "393512" "894173" "260596" "430775" "896965" "151153" "453583" + "718570" "878052" "374524" "737877" "980178" "236181" "409143" "993943" "14522" + "484145" "360559" "124255" "732000" "501206" "949780" "862822" "938958" "385832" + "125612" "637972" "286567" "79608" "551571" "212315" "27596" "109087" "422064" + "687569" "339144" "584902" "518482" "680284" "191122" "251585" "786171" "281184" + "448343" "25778" "154452" "127576" "179129" "399977" "244880" "942914" "114249" + "197419" "762760" "427612" "689058" "13446" "197047" "617382" "468553" "441250" + "526814" "347288" "590899" "408774" "440592" "285978" "964368" "427906" "56544" + "193750" "687953" "747169" "751240" "978464" "950854" "101749" "384224" "464568" + "12193" "322488" "806262" "51216" "483967" "694052" "571729" "858272" "687651" + "108996" "851029" "798032" "543103" "468700" "455526" "845363" "137842" "945342" + "43892" "89654" "173445" "850867" "162179" "460098" "986502" "995786" "594388" + "459654" "28767" "333682" "899804" "431997" "342609" "875010" "360179" "433351" + "588695" "573381" "512284" "276877" "665923" "338840" "444580" "83622" "188195" + "820966" "260683" "512728" "505349" "766922" "799570" "599960" "561767" "93319" + "354922" "281904" "570250" "335720" "844468" "821197" "506060" "363316" "578049" + "835386" "324902" "724311" "897487" "557416" "370237" "726012" "190847" "355177" + "78247" "107195" "480402" "899952" "454722" "481867" "828252" "472809" "767536" + "746592" "602279" "213927" "447823" "234091" "719459" "802159" "254152" "857357" + "370351" "481641" "335166" "456907" "858324" "426628" "995971" "550711" "101900" + "825364" "25696" "745514" "369825" "765734" "715784" "960486" "459013" "888466" + "796973" "23581" "840099" "698651" "254598" "698439" "39533" "150115" "391365" + "613458" "893648" "658090" "206" "204695" "849953" "27158" "304939" "711157" "415570" + "525577" "678086" "188982" "210530" "723510" "912691" "347506" "333025" "873778" + "357894" "442791" "852967" "256734" "832694" "202737" "976378" "489591" "927714" + "873157" "2480" "244498" "239854" "933261" "611173" "882131" "243037" "831814" + "892423" "464912" "772106" "185102" "792763" "43005" "989772" "984388" "742051" + "878505" "977607" "489160" "145427" "142443" "488942" "541697" "697998" "994816" + "369740" "644061" "238271" "337807" "31036" "103295" "166257" "140670" "913070" + "128570" "812550" "745207" "126098" "344378" "624333" "455719" "606721" "931708" + "348265" "813934" "685249" "532890" "366014" "221043" "404351" "90146" "447211" + "207252" "466164" "217310" "122566" "167407" "672951" "184497" "583254" "390128" + "117071" "841532" "130359" "675415" "288278" "149526" "357187" "974691" "818566" + "233201" "530778" "897625" "594077" "801548" "501295" "788175" "30833" "278263" + "291644" "510794" "348752" "849821" "380" "925727" "344006" "908190" "785920" + "838529" "530522" "690199" "588303" "27379" "785469" "383490" "638271" "743507" + "805563" "254750" "23238" "66029" "745248" "622830" "180482" "805662" "229401" + "379518" "763586" "306579" "470495" "485359" "33598" "38483" "712936" "825163" + "935757" "933384" "543169" "73879" "589993" "592692" "96682" "821917" "336376" + "229347" "620859" "446406" "841913" "340322" "542457" "872158" "16602" "616773" + "113223" "581906" "907169" "210702" "650574" "728867" "316546" "143635" "140111" + "440872" "614041" "929576" "910079" "990389" "740652" "203052" "787838" "948421" + "900834" "491510" "345824" "172437" "439399" "939929" "387869" "996403" "806416" + "138232" "375872" "963706" "235842" "468692" "969600" "792635" "747412" "930525" + "970457" "449395" "764849" "930419" "518950" "765480" "782532" "859711" "316555" + "967687" "261794" "450615" "88211" "964528" "258829" "433808" "897408" "192646" + "568511" "610645" "671995" "537064" "10240" "635743" "355900" "762299" "288343" + "508340" "12581" "714893" "328243" "448759" "269690" "507144" "114056" "946330" + "268021" "353766" "902165" "789237" "225994" "572361" "733874" "7696" "843334" + "9522" "681526" "745629" "392195" "140944" "167108" "193793" "690507" "322899" + "422146" "962516" "532958" "918815" "730553" "96216" "475060" "828504" "621930" + "88688" "376122" "398985" "954839" "922355" "748095" "115077" "593029" "594620" + "790334" "441002" "79269" "707899" "113754" "900374" "739919" "584750" "175924" + "977413" "37614" "939940" "706468" "171416" "329174" "59726" "207604" "260734" + "532584" "865515" "728734" "735348" "895831" "635682" "766592" "221545" "686124" + "660747" "630170" "115654" "685879" "734822" "419547" "157176" "694996" "387476" + "876883" "729571" "898065" "397562" "753513" "297404" "708434" "826676" "75853" + "26005" "343896" "333053" "477743" "105157" "321972" "1777" "207890" "290282" + "392874" "785708" "873966" "31258" "280195" "379704" "980980" "656817" "6636" + "465046" "442454" "980961" "756339" "538514" "791502" "507898" "12513" "536783" + "120748" "999694" "74234" "551400" "592610" "797388" "99316" "933810" "415627" + "791232" "295938" "878879" "107456" "672360" "392896" "772125" "456668" "97423" + "606461" "993629" "362044" "436856" "72245" "981185" "344946" "564508" "727816" + "789824" "3752" "641587" "547181" "353045" "20472" "906194" "876436" "206216" + "429327" "559539" "690947" "95807" "331000" "573885" "279467" "831349" "959010" + "348561" "828074" "711861" "937102" "314394" "8159" "509066" "844930" "191277" + "51393" "404553" "912846" "302410" "940963" "752508" "190595" "635784" "887340" + "768839" "785928" "90979" "847516" "905373" "91658" "771465" "250338" "546981" + "283192" "885354" "720984" "412719" "11421" "404639" "850960" "526370" "920476" + "789896" "889196" "880624" "406033" "886159" "932090" "297019" "77356" "54957" + "967005" "98905" "120537" "669093" "781905" "888655" "88345" "244648" "793235" + "158380" "1880" "997435" "720273" "790707" "259329" "207961" "676275" "194071" + "797221" "369744" "686353" "334838" "77591" "248908" "21745" "812755" "401269" + "374677" "951067" "82288" "487047" "206191" "275554" "573399" "493517" "682412" + "860311" "789801" "217148" "442980" "129400" "211218" "963082" "860262" "444686" + "849664" "465355" "614234" "326015" "486560" "256339" "424955" "903818" "384078" + "841476" "541236" "266398" "795277" "760195" "628673" "963685" "412289" "438029" + "582559" "661075" "95219" "10937" "878425" "347897" "892134" "120635" "264505" + "846649" "290280" "539001" "285179" "682180" "143233" "529757" "850505" "693382" + "732301" "450287" "826296" "476027" "673305" "947915" "274100" "984141" "91378" + "406247" "271022" "269329" "826607" "427211" "20595" "535122" "559352" "555950" + "337036" "404636" "302526" "166927" "351020" "620375" "177142" "251314" "166774" + "895630" "890837" "382425" "791133" "123000" "377233" "199283" "260869" "430873" + "612958" "149529" "977780" "370697" "826403" "61006" "464623" "956248" "665395" + "629503" "376698" "891458" "743760" "78866" "543073" "719415" "28507" "521192" + "706681" "731643" "913918" "508266" "88980" "167819" "891569" "318108" "632362" + "201735" "695424" "880752" "765530" "771144" "561870" "311795" "231513" "317246" + "846380" "132453" "564900" "461651" "917281" "163346" "793676" "88116" "981004" + "375849" "78002" "907014" "970486" "22286" "957191" "187867" "850220" "591767" + "134351" "911062" "54627" "93596" "776304" "776765" "539553" "193826" "359592" + "785322" "921109" "741965" "627600" "338720" "855517" "86241" "961175" "18237" + "82726" "736102" "854389" "309988" "400899" "138634" "462084" "321932" "904130" + "484499" "447430" "888222" "267465" "497203" "165038" "135024" "994782" "868720" + "90563" "707232" "420861" "572497" "404086" "942012" "359142" "424944" "749342" + "405944" "932438" "57421" "1305" "729552" "263400" "651922" "294097" "993521" + "263775" "8221" "193880" "432929" "812550" "458637" "836186" "435509" "166568" + "45424" "854179" "45059" "834958" "671276" "991042" "327711" "564956" "445253" + "516025" "878649" "494492" "214104" "239669" "536347" "834771" "279680" "639725" + "404544" "570636" "657509" "699763" "296883" "100103" "907577" "663391" "428452" + "694338" "922759" "71041" "985029" "355437" "892103" "806393" "831646" "597304" + "824636" "116999" "524421" "842200" "959812" "818450" "162541" "779846" "412451" + "752837" "65805" "269713" "680299" "135975" "361635" "148663" "49393" "586298" + "121080" "941478" "325948" "276568" "985304" "220210" "443002" "752592" "695348" + "832898" "958642" "987458" "615837" "684254" "962518" "56465" "970921" "861063" + "299862" "363704" "590891" "180167" "755905" "225058" "319265" "578165" "492509" + "151812" "347595" "536595" "802115" "581882" "741440" "788630" "391383" "200340" + "770182" "578419" "532476" "52060" "449750" "46849" "23722" "567305" "45369" "183051" + "658297" "288096" "822460" "421785" "779849" "265382" "985124" "273796" "935430" + "323648" "90497" "523445" "414032" "219357" "241796" "181029" "265848" "44975" + "544700" "960117" "979088" "821091" "745289" "870898" "772669" "156821" "339467" + "462864" "663633" "704102" "446816" "557140" "50699" "767901" "52426" "203649" + "70161"' + dataset_name: 1key-list-2K-elements-quicklist tested-groups: - list tested-commands: @@ -28,5 +253,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 34 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml index ab55915d..d9cfdd0f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-hash-1K-fields-with-5B-values.yml @@ -1,6 +1,6 @@ version: 0.4 name: memtier_benchmark-1key-load-hash-1K-fields-with-5B-values -description: "" +description: '' dbconfig: configuration-parameters: save: '""' @@ -21,10 +21,261 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command 'HSET "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" "value" "jqurtadjro" "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" "value" "kjeevccyof" "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" "value" "znartcywze" "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" "value" "uxvibjduto" "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" "value" "bnatichltp" "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" "value" "nlqtadqinl" "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" "value" "wcpbfslakk" "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" "value" "rpyroriegs" "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" "value" "jhocasnttw" "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" "value" "rbdabbmnrf" "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" "value" "bqoabrqwwj" "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" "value" "zwlhpcahwu" "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" "value" "myzjxvtvjh" "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" "value" "ukprrucywq" "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" "value" "xzbqjpzqlm" "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" "value" "cpjveufsvk" "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" "value" "eqaxrccwjq" "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" "value" "gktcjcfxbb" "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" "value" "gayysuldha" "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" "value" "erqgyscser" "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" "value" "ofcurtthcs" "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" "value" "kgopxvsdah" "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" "value" "glynpmsjcf" "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" "value" "gsvkmnluiz" "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" "value" "kdodndexvr" "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" "value" "tcpwkimype" "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" "value" "mugdxqnjxj" "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" "value" "efhynoxlul" "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" "value" "pmaagvqldo" "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" "value" "fvemodlpgz" "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" "value" "yxsnreuepl" "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" "value" "gehuriygwq" "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" "value" "rhzpguhsws" "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" "value" "gbjzsedhag" "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" "value" "ctnaggdbru" "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" "value" "vhjaphfdpj" "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" "value" "qnqzibcmip" "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" "value" "dgodkfjzos" "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" "value" "gbeizdzdyb" "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" "value" "ngwifjdpha" "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" "value" "whdftyqojv" "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" "value" "krfosgrmjb" "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" "value" "haxesjafmh" "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" "value" "quemrlmwod" "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" "value" "puvgjfjyaf" "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" "value" "xeurpmfdmo" "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" "value" "rfhlttsuqy" "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" "value" "umwunfzsvo" "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" "value" "kohpozxkhl" "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" "value" "tmkoxwdgpx" "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" "value" "qwxzqlqter" "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" "value" "kdklhpxntt" "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" "value" "dfemamyevk" "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" "value" "lftmqoxhfc" "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" "value" "vqashxkrik" "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" "value" "jqgtbgbybq" "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" "value" "wwowdvybjj" "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" "value" "fiugzrozky" "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" "value" "nwywtydqew" "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" "value" "trwzipsers" "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" "value" "xkvgnzjgrm" "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" "value" "bxwvqvndcc" "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" "value" "muocqqypmt" "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" "value" "vpqlxtfkjz" "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" "value" "tqjpijliii" "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" "value" "ffrviosqzo" "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" "value" "maxylirjgh" "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" "value" "nszbrpweoz" "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" "value" "gqybtjuhvq" "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" "value" "vuqlqdpfdn" "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" "value" "szupcnvvij" "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" "value" "lbjarnpxhh" "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" "value" "nlxwjmzwln" "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" "value" "hertbwuzyw" "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" "value" "pghbwbtfmk" "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" "value" "cvohdragtx" "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" "value" "lgqazzajpx" "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" "value" "bvvoibkfrt" "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" "value" "ughnpilqqm" "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" "value" "rofnkytnhm" "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" "value" "ffksbrtbfq" "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" "value" "yoblelzlkd" "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" "value" "ebhhhgabjd" "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" "value" "krxneqolle" "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" "value" "agswwrfabr" "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" "value" "sfuvzzxbxq" "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" "value" "nmfihtnkel" "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" "value" "xlmvatfsly" "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" "value" "gbazuqnmit" "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" "value" "pgdhjrxhga" "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" "value" "sotbjzlsvz" "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" "value" "qclkaeciey" "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" "value" "wrrgxxkxkc" "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" "value" "cmhkstsjok" "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" "value" "sqwhsgboef" "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" "value" "nahweurftw" "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" "value" "ksppwhhqzj" "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" "value" "kbfqdppnfa" "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" "value" "tglieutcis" "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" "value" "kpfqxroqbs" "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" "value" "nvkfnfzoki" "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" "value" "ysnndkycix" "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" "value" "zorzyqtjtr" "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" "value" "kcbotffyca" "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" "value" "zejhycldyy" "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" "value" "plqbwsiuzw" "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" "value" "omwbgglqsp" "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" "value" "rnlaakgsrf" "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" "value" "sotsxznskx" "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" "value" "utymwhxigo" "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" "value" "saqilljaid" "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" "value" "tlnkrncpwi" "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" "value" "vzcclamtun" "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" "value" "osaekeukqx" "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" "value" "vsvhjrymqc" "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" "value" "ghwcrdlbjj" "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" "value" "aiqqyusnuv" "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" "value" "ywiurvfbpg" "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" "value" "ymqxhmnidz" "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" "value" "oqmuhlruqy" "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" "value" "hnnfmyurhx" "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" "value" "aslibwggrp" "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" "value" "ctgwmawlgl" "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" "value" "ulepgommyy" "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" "value" "oeawjlqnyg" "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" "value" "thmmmlqluk" "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" "value" "mmqblvrscy" "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" "value" "rwrxxrnwtq" "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" "value" "ynnhyctikq" "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" "value" "ftnbjymlll" "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" "value" "fgygwdazbm" "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" "value" "wvrlxfoxff" "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" "value" "fqtktfghcv" "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" "value" "tsmzfswaxo" "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" "value" "caxgjftjyj" "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" "value" "dbtbtvkqss" "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" "value" "lxzdcbveuy" "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" "value" "lspvrnxnjo" "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" "value" "fgzwwaedjy" "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" "value" "cbtpbbfrdd" "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" "value" "fhobhpwwkp" "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" "value" "dtgjnddwch" "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" "value" "krtsiucvvu" "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" "value" "dcjlwhfstw" "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" "value" "ljklggibcy" "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" "value" "flvftlpbjq" "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" "value" "bweysooxiv" "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" "value" "wtcpliaxmk" "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" "value" "mcojdazpfq" "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" "value" "nfucelqjfe" "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" "value" "qwozutlufu" "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" "value" "adlxahxsbq" "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" "value" "pyrpwxalpc" "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" "value" "umoicweaab" "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" "value" "ikpikupjoi" "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" "value" "jbzyfznpdn" "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" "value" "zuoqjiciij" "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" "value" "cmqraybrlw" "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" "value" "hyanpicfan" "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" "value" "weqhfkosif" "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" "value" "fmyleefltp" "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" "value" "jvtalmlkng" "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" "value" "keklddczkd" "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" "value" "fuipidfbjt" "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" "value" "ezbiwqnabg" "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" "value" "qqfnugftmr" "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" "value" "anmcogawkg" "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" "value" "gfdzgxfdcg" "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" "value" "vpehhmoxva" "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" "value" "qsxfnsicrx" "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" "value" "htawohddyn" "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" "value" "cuuytorpnp" "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" "value" "fsuovvpgng" "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" "value" "mcbuftndrr" "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" "value" "ekponflaeq" "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" "value" "uqbpcvkipa" "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" "value" "ramoirrdyd" "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" "value" "yzcspfvcot" "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" "value" "ocesqguvym" "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" "value" "zcffhzusrl" "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" "value" "lpahctqgna" "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" "value" "xwtwtwmbgu" "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" "value" "etcsjxoqab" "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" "value" "mlznoaajqq" "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" "value" "cgmivhyskk" "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" "value" "ncremxgfdb" "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" "value" "jjczogqdwz" "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" "value" "llimzyabsp" "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" "value" "nmtmjmhmdl" "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" "value" "dnvwyhyhsn" "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" "value" "yjhypaonqq" "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" "value" "higdkhodzy" "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" "value" "lywsezpzgf" "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" "value" "yfvwesgulw" "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" "value" "qmnxipsiga" "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" "value" "sxcihybfci" "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" "value" "xsueeljljp" "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" "value" "rkwlgzhvvy" "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" "value" "xftfzsoiwc" "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" "value" "dxdngrmypg" "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" "value" "vealtjlqyc" "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" "value" "pudgkcbwdx" "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" "value" "jetamrlglx" "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" "value" "dtuhvpszzt" "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" "value" "cynhehkcxs" "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" "value" "audguegpmo" "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" "value" "uncqdpbhwb" "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" "value" "mkngszsxeu" "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" "value" "ocmtsfpsgh" "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" "value" "hrhiqcarju" "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" "value" "avchkjnlwm" "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" "value" "xkiuuciwrn" "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" "value" "wzuhzzdezi" "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" "value" "srkvjhetmj" "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" "value" "asbtvfzien" "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" "value" "euleuicawb" "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" "value" "klwqsggtob" "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" "value" "xrvonyieqa" "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" "value" "wvdmobfisx" "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" "value" "vorgqhmaoq" "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" "value" "vnsufnurol" "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" "value" "rjrtvpntke" "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" "value" "gcsswbksnc" "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" "value" "eaetplspga" "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" "value" "qzlfnntjar" "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" "value" "hggqmlgwha" "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" "value" "cflarkquuv" "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" "value" "ylxiwiesps" "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" "value" "laepwenqmc" "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" "value" "tvlckdoyfe" "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" "value" "umttshfkpk" "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" "value" "ivinvxopgz" "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" "value" "gdlztbhpeq" "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" "value" "dtjljhzqcm" "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" "value" "evjrybtwww" "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" "value" "dgcesswkvc" "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" "value" "aexxjlgwuo" "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" "value" "snpuvnebpy" "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" "value" "eqiukbyscu" "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" "value" "inboyxgoqa" "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" "value" "igwekdegcw" "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" "value" "arqqmfmmbz" "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" "value" "tjnbsybxws" "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" "value" "kngwkkzwts" "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" "value" "nunpqugdit" "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" "value" "ezgxjiwwig" "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" "value" "exhjfssojj" "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" "value"' --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --distinct-client-seed "--data-size" "10" --command 'HSET + "hash:1000" "tocawprsxz" "value" "csqcfxyzsy" "value" "ipubipttcb" "value" "jqurtadjro" + "value" "zdulfflfqx" "value" "bbfvuialin" "value" "ifpfyncdfe" "value" "kjeevccyof" + "value" "stttkrbfqs" "value" "qatkvfuttq" "value" "ltvfnuuwil" "value" "znartcywze" + "value" "bzursuzuei" "value" "jlghqxtvok" "value" "osncqcuest" "value" "uxvibjduto" + "value" "giubyhvaav" "value" "joijmgposs" "value" "lqxpnplleo" "value" "bnatichltp" + "value" "nnfxoqebys" "value" "lyhqvxolfw" "value" "caaqjozcqh" "value" "nlqtadqinl" + "value" "hfjxrrsszf" "value" "fussukqrph" "value" "cbjovvgqqy" "value" "wcpbfslakk" + "value" "slskrnekbc" "value" "nvonwipkta" "value" "jhdcicttmm" "value" "rpyroriegs" + "value" "lnuuootxmp" "value" "ufdxqlonpg" "value" "qgasrnjrld" "value" "jhocasnttw" + "value" "smwbxeqbed" "value" "kapxglqccs" "value" "hhwvslfxmf" "value" "rbdabbmnrf" + "value" "ltgidziwzm" "value" "qpffifpdiz" "value" "sadqcfniau" "value" "bqoabrqwwj" + "value" "wghyakzbit" "value" "bnxtlmiwup" "value" "akzsgaeqon" "value" "zwlhpcahwu" + "value" "kfselnpkim" "value" "dxtzxeguoi" "value" "roczxpuisd" "value" "myzjxvtvjh" + "value" "alfftdxaxc" "value" "vyiqkfoics" "value" "dygkzcpakt" "value" "ukprrucywq" + "value" "afzlyodwiz" "value" "vdaebbupfe" "value" "wemmvswznk" "value" "xzbqjpzqlm" + "value" "lqqivzlppd" "value" "rrzcqyzdzf" "value" "ncckxlmsvg" "value" "cpjveufsvk" + "value" "babfjxxabw" "value" "btcvhacldb" "value" "mqqrgbacfa" "value" "eqaxrccwjq" + "value" "erahoeivfw" "value" "omeatkwwtc" "value" "mjwrbndexu" "value" "gktcjcfxbb" + "value" "tfonhwnuxj" "value" "pheajlhymx" "value" "vefgwelnfo" "value" "gayysuldha" + "value" "tqpqihwjtl" "value" "eirhwkdgfq" "value" "rnfodijavx" "value" "erqgyscser" + "value" "nnnxouavyp" "value" "yhejmjwwni" "value" "mwmcwqzbld" "value" "ofcurtthcs" + "value" "idmjjbjvni" "value" "ovqohpxjft" "value" "ocoflktdhp" "value" "kgopxvsdah" + "value" "pyjpxqnavq" "value" "nubsytpfao" "value" "ddpgrvwowd" "value" "glynpmsjcf" + "value" "whsxmqffqg" "value" "sstqpivwip" "value" "cqfnhujrbj" "value" "gsvkmnluiz" + "value" "zdmgjjyukl" "value" "gcfcbjybkx" "value" "qmhyoyctod" "value" "kdodndexvr" + "value" "tkgihmsrha" "value" "kmifjielrw" "value" "gefoharnza" "value" "tcpwkimype" + "value" "nxllkzroin" "value" "bpvbnmpekh" "value" "ljinllovsw" "value" "mugdxqnjxj" + "value" "tqqmmvwact" "value" "uidvmrqyjd" "value" "dthtfrqkce" "value" "efhynoxlul" + "value" "iosqxoobrk" "value" "sujbwndgwl" "value" "btxehrokkw" "value" "pmaagvqldo" + "value" "evuxmkrrfl" "value" "dclualrzqb" "value" "jfqxkxgqhj" "value" "fvemodlpgz" + "value" "lawrpikwsk" "value" "socoxaegfa" "value" "snomfrutha" "value" "yxsnreuepl" + "value" "vjihaakiof" "value" "nnhrgirrtw" "value" "jccorylnjg" "value" "gehuriygwq" + "value" "icqjxcermo" "value" "ocgjeuljxf" "value" "qslrwqmixc" "value" "rhzpguhsws" + "value" "zxlbhyeckf" "value" "iziwqojsoq" "value" "qlorevyltp" "value" "gbjzsedhag" + "value" "mkxysrkpug" "value" "bhrvnadcdk" "value" "qxxinxaqxn" "value" "ctnaggdbru" + "value" "fsthobmdxk" "value" "cvnnitrrow" "value" "vlhtdpqavh" "value" "vhjaphfdpj" + "value" "yhdgqenmwv" "value" "ysntbzffxq" "value" "emfjcnujqn" "value" "qnqzibcmip" + "value" "ngcxqjjpdm" "value" "gkneclxnnt" "value" "rhkpfsuhoq" "value" "dgodkfjzos" + "value" "isqymcuffe" "value" "ripecixnpr" "value" "dxpepbctea" "value" "gbeizdzdyb" + "value" "aqlapmghln" "value" "yhlalzusch" "value" "xglrugpjkt" "value" "ngwifjdpha" + "value" "jvekvvldai" "value" "hmdzsuuyrn" "value" "ncabqesziv" "value" "whdftyqojv" + "value" "rhzqdtxucc" "value" "ftyxhyfokj" "value" "vqtixjkcbb" "value" "krfosgrmjb" + "value" "ahcaaodvgi" "value" "ooeswhfdnj" "value" "jhctncrzlw" "value" "haxesjafmh" + "value" "vxrtzngznb" "value" "fidsuuizcf" "value" "mamtueyrqn" "value" "quemrlmwod" + "value" "pkgpjwyfbh" "value" "ckibsdtfff" "value" "tjnjhejnju" "value" "puvgjfjyaf" + "value" "cvmicoarvv" "value" "mxpzuzrzuo" "value" "rrrfhnclbv" "value" "xeurpmfdmo" + "value" "yqvkykgjbe" "value" "behdxlfdho" "value" "dyzedskzkq" "value" "rfhlttsuqy" + "value" "pkehotsmka" "value" "alokvrpbih" "value" "mobwpcyxuk" "value" "umwunfzsvo" + "value" "naggqdxcjm" "value" "rakustfykw" "value" "dtkfydidli" "value" "kohpozxkhl" + "value" "usjmfkopln" "value" "axhoxkubdv" "value" "asretszbav" "value" "tmkoxwdgpx" + "value" "wjhaavxfge" "value" "pcuaesomdc" "value" "vjhpmffzxc" "value" "qwxzqlqter" + "value" "jjumoixniz" "value" "ruxsmttpak" "value" "pjdundsxrd" "value" "kdklhpxntt" + "value" "muhewfzihs" "value" "dplonqlliz" "value" "wjibkklezg" "value" "dfemamyevk" + "value" "nryvfijxhj" "value" "bqqohkuylc" "value" "wiqhmhkiel" "value" "lftmqoxhfc" + "value" "sjbaedopjb" "value" "dlomhvkoxg" "value" "jhkdwtqvwl" "value" "vqashxkrik" + "value" "mupcilqfjg" "value" "suahxaebee" "value" "rqkcyxiwhz" "value" "jqgtbgbybq" + "value" "ygbfgfefac" "value" "kjblkrvknt" "value" "yajpmxmuwz" "value" "wwowdvybjj" + "value" "bdtbaxnuko" "value" "adfhfatarh" "value" "vfcpevtekf" "value" "fiugzrozky" + "value" "spogjykkfs" "value" "tdggmsxysk" "value" "aoqlctikzg" "value" "nwywtydqew" + "value" "qjrhtqgwjc" "value" "dhzgpwewsx" "value" "outdlyeqvq" "value" "trwzipsers" + "value" "qtpcwuafar" "value" "scgjdkyetq" "value" "aqyfvxyjqr" "value" "xkvgnzjgrm" + "value" "hhbceuegvh" "value" "paitaeqrpb" "value" "yfdsmhtria" "value" "bxwvqvndcc" + "value" "dpyjoihqrs" "value" "tnratexlre" "value" "hplvvuoscb" "value" "muocqqypmt" + "value" "pxzkuasjek" "value" "flrsaczxzc" "value" "pubqtzzzko" "value" "vpqlxtfkjz" + "value" "fiafoggekm" "value" "qtewhixedb" "value" "iijjcabgak" "value" "tqjpijliii" + "value" "uttazeawix" "value" "hxbmykkugi" "value" "bekchebgys" "value" "ffrviosqzo" + "value" "rjrptuhkav" "value" "sldzewoxas" "value" "uesalivsis" "value" "maxylirjgh" + "value" "vpzsmbjkvy" "value" "eiziligjfr" "value" "tqblforkpa" "value" "nszbrpweoz" + "value" "rzanpefsfy" "value" "cejkfhuykf" "value" "abinkgshoi" "value" "gqybtjuhvq" + "value" "oqdlpaubsc" "value" "nrbfkysxaf" "value" "mhxojehvxx" "value" "vuqlqdpfdn" + "value" "orqqevpmca" "value" "xigznrdgqy" "value" "jzceexkqam" "value" "szupcnvvij" + "value" "btgeubdzbb" "value" "nojnedgabk" "value" "sdnkjddyut" "value" "lbjarnpxhh" + "value" "wevfinjbqk" "value" "dvgqwzignk" "value" "ejzwnidqwr" "value" "nlxwjmzwln" + "value" "brrlblrxwa" "value" "hyikggurti" "value" "wybmlpqblt" "value" "hertbwuzyw" + "value" "rwhzzytdsq" "value" "symbgeyple" "value" "zbfeyptemz" "value" "pghbwbtfmk" + "value" "mxydilgynv" "value" "bhwytqsafu" "value" "ecsburyjhh" "value" "cvohdragtx" + "value" "lscjhgztom" "value" "giswndixdf" "value" "etsngvbrff" "value" "lgqazzajpx" + "value" "pypepewjvq" "value" "nswjopvtqv" "value" "tuajnnqtcq" "value" "bvvoibkfrt" + "value" "kjqeujfkoh" "value" "diwmfuckel" "value" "bwizktcwmb" "value" "ughnpilqqm" + "value" "ihealvwnxb" "value" "thqttakyzy" "value" "auwfujaoya" "value" "rofnkytnhm" + "value" "ilkuddrdvh" "value" "hmwfncgzxg" "value" "pzrchtwaaw" "value" "ffksbrtbfq" + "value" "ethxaycsil" "value" "uwiqrvcqvu" "value" "fgcehqgsso" "value" "yoblelzlkd" + "value" "gjiwldcfqh" "value" "sbrjnwxdip" "value" "nenhiiibwx" "value" "ebhhhgabjd" + "value" "xpkwqbfban" "value" "pupmdjgyed" "value" "aejnvyfdst" "value" "krxneqolle" + "value" "nouncgkoik" "value" "kamgfgbxel" "value" "fffylsswky" "value" "agswwrfabr" + "value" "pkvcbelpos" "value" "mxapzqqqsw" "value" "ywmqoaztmy" "value" "sfuvzzxbxq" + "value" "kdcvbkrbsj" "value" "twpiiaedpc" "value" "egmgddriry" "value" "nmfihtnkel" + "value" "kqzjnkdlxd" "value" "eovsizpcjp" "value" "bsavjyaksg" "value" "xlmvatfsly" + "value" "dlhjfafskj" "value" "wmvhvwnowp" "value" "vjjozwrovk" "value" "gbazuqnmit" + "value" "ubwlcefgqb" "value" "jttqzbazgz" "value" "dozecfsvue" "value" "pgdhjrxhga" + "value" "gzekysdunp" "value" "ygoiannoht" "value" "hklchdenoe" "value" "sotbjzlsvz" + "value" "qjwrnhooax" "value" "cdghgcsoth" "value" "mjlpvuoghe" "value" "qclkaeciey" + "value" "oownjpxrov" "value" "nvqfyljbef" "value" "tsnawydcru" "value" "wrrgxxkxkc" + "value" "ylulwsnjay" "value" "lxsinouutc" "value" "ozpyyaznsh" "value" "cmhkstsjok" + "value" "ybckvbeoib" "value" "fsoardckcw" "value" "ltkauvxggz" "value" "sqwhsgboef" + "value" "wgtjxahmef" "value" "spoqshzjoi" "value" "pfvfxrrfhl" "value" "nahweurftw" + "value" "fojjpqmbck" "value" "zexblqeora" "value" "qsoiwsugdv" "value" "ksppwhhqzj" + "value" "otadcihtmd" "value" "imnjbkmsls" "value" "zzenkvuesw" "value" "kbfqdppnfa" + "value" "igehetokzq" "value" "koujdppfua" "value" "wqsqzzbqhm" "value" "tglieutcis" + "value" "owovlhorvw" "value" "nraylduhut" "value" "nwnyjkugcf" "value" "kpfqxroqbs" + "value" "xwxwosqkhm" "value" "ollacusjzj" "value" "wcouaiatsu" "value" "nvkfnfzoki" + "value" "fgjnsosfrp" "value" "pltsnzqvpi" "value" "rhnkzlsjtk" "value" "ysnndkycix" + "value" "bpnfopinub" "value" "blujwnyluy" "value" "wgtmckqknh" "value" "zorzyqtjtr" + "value" "hvtlkrungk" "value" "rgtondctpo" "value" "mjgvtydjtm" "value" "kcbotffyca" + "value" "gybxnvwchp" "value" "gazojexans" "value" "hmcpcrjumm" "value" "zejhycldyy" + "value" "iiissmznfe" "value" "qvpuudyuks" "value" "gviypfayfm" "value" "plqbwsiuzw" + "value" "nunchscyqc" "value" "qocjpufxio" "value" "iqbyikqjmx" "value" "omwbgglqsp" + "value" "nywteueaig" "value" "ntmgbzaivy" "value" "ijdgnlzprg" "value" "rnlaakgsrf" + "value" "fpdflprzvn" "value" "azkdbpnshy" "value" "mvfnirshbd" "value" "sotsxznskx" + "value" "uzktwqcdeb" "value" "myrrmvflyw" "value" "jgaieawkcu" "value" "utymwhxigo" + "value" "vtaiyncmyg" "value" "gpodilvrnm" "value" "xgfzndhodu" "value" "saqilljaid" + "value" "jxiewthqls" "value" "nbwksmwxpx" "value" "rwfykeeqgx" "value" "tlnkrncpwi" + "value" "ogyvxbgcwi" "value" "ffcqkkzllx" "value" "rtnhivnxtb" "value" "vzcclamtun" + "value" "jjlefkekuw" "value" "xjksnqifds" "value" "ctusqixohm" "value" "osaekeukqx" + "value" "irlduoinie" "value" "nifzrybfuh" "value" "ctqxoyxbwc" "value" "vsvhjrymqc" + "value" "bzwxqcpftf" "value" "ltghdkluqq" "value" "vklwhyzqhk" "value" "ghwcrdlbjj" + "value" "lzzptujbjp" "value" "qlvgfplbod" "value" "ghepftfjgk" "value" "aiqqyusnuv" + "value" "rspghuhpbp" "value" "lfkqrtxocm" "value" "iibgagtkpg" "value" "ywiurvfbpg" + "value" "tdceweesxh" "value" "pvwvdaorrl" "value" "ejlunxlwxn" "value" "ymqxhmnidz" + "value" "lydebbpmfb" "value" "ztjuqomjck" "value" "eyrbqexkff" "value" "oqmuhlruqy" + "value" "gnrmnwaxls" "value" "mumhqarhgg" "value" "skbzfbeziu" "value" "hnnfmyurhx" + "value" "yrsizkbbwz" "value" "azpwrzovza" "value" "txhllnvudv" "value" "aslibwggrp" + "value" "ubghghklvj" "value" "jqqogagqni" "value" "emfqsjraia" "value" "ctgwmawlgl" + "value" "mivctgaajt" "value" "knycrcrsbm" "value" "ubtiscdgrn" "value" "ulepgommyy" + "value" "qbhdjhoohc" "value" "cctlfgicpv" "value" "phfuspevwk" "value" "oeawjlqnyg" + "value" "jpphbjtbrh" "value" "ofykgotycd" "value" "csjfbpjyzq" "value" "thmmmlqluk" + "value" "buzhjxsbkm" "value" "pisgqibyae" "value" "skkawcmqqt" "value" "mmqblvrscy" + "value" "dpkiubfzbx" "value" "yivxcecwlp" "value" "kbnjiilaqd" "value" "rwrxxrnwtq" + "value" "veegnotgmj" "value" "pbfijwccjp" "value" "expefhkisx" "value" "ynnhyctikq" + "value" "bhfmhanvxe" "value" "otclvmbilg" "value" "hskkmrluuf" "value" "ftnbjymlll" + "value" "nbkaxrojqq" "value" "qydrgilxxt" "value" "dxufcyurjx" "value" "fgygwdazbm" + "value" "tivnqailcl" "value" "jwvqixjhho" "value" "oglqutqfcx" "value" "wvrlxfoxff" + "value" "ropuqidkxv" "value" "qcsxjrjcfc" "value" "twuvkpjzzw" "value" "fqtktfghcv" + "value" "suhwnartid" "value" "wvsnfinuil" "value" "rngtndwjyg" "value" "tsmzfswaxo" + "value" "uvlswctlhx" "value" "llamjvxyqo" "value" "wovoupawzt" "value" "caxgjftjyj" + "value" "gwzqcetcji" "value" "yzrdbalexf" "value" "fnpdsuozxt" "value" "dbtbtvkqss" + "value" "pwgjoppmgc" "value" "wxjdgbugeu" "value" "qchpfcigwa" "value" "lxzdcbveuy" + "value" "bwjyghaztz" "value" "uedehyieof" "value" "pfaytznuaa" "value" "lspvrnxnjo" + "value" "zkbqvttlzy" "value" "fkdmuxraqf" "value" "nbizrabfuo" "value" "fgzwwaedjy" + "value" "gkmwutvars" "value" "bwsdzrxzse" "value" "txgjxzovte" "value" "cbtpbbfrdd" + "value" "vqgztpmzhz" "value" "rdipvyeqoi" "value" "bovkdabcdo" "value" "fhobhpwwkp" + "value" "mkbkflixkr" "value" "mjifqzmtsd" "value" "pkcqdokojd" "value" "dtgjnddwch" + "value" "uboipezuni" "value" "dfdodbelzn" "value" "fzsoiryhfn" "value" "krtsiucvvu" + "value" "aieekmivcb" "value" "aeafusfzdn" "value" "ehnrizfmfo" "value" "dcjlwhfstw" + "value" "wksgvbkbyw" "value" "hvfprkjlbc" "value" "jlgepeyhpc" "value" "ljklggibcy" + "value" "mhrvuemywb" "value" "wdqygrxkya" "value" "ystnkbogee" "value" "flvftlpbjq" + "value" "vgfgbsbnwy" "value" "rsivptwulz" "value" "bzjzucrypq" "value" "bweysooxiv" + "value" "mmcunsiwad" "value" "mszjkgsrio" "value" "bvurseeqmh" "value" "wtcpliaxmk" + "value" "ndwiompimr" "value" "mdcwoblmkl" "value" "dflxukffgl" "value" "mcojdazpfq" + "value" "tctgzmjads" "value" "dewdgfrhos" "value" "iwqanwtvcd" "value" "nfucelqjfe" + "value" "wgtrwefdsw" "value" "skstqdgbos" "value" "rwllkdzxrj" "value" "qwozutlufu" + "value" "fmpdixcckx" "value" "jybzltmwrs" "value" "ossjrvqmaa" "value" "adlxahxsbq" + "value" "mbewprqunw" "value" "xbvbujurqw" "value" "rnvhfxbuoi" "value" "pyrpwxalpc" + "value" "adlryhdbpr" "value" "gritvkzfgw" "value" "aufhfrhccf" "value" "umoicweaab" + "value" "kgirldeylz" "value" "nknlysgviv" "value" "plbxaamppj" "value" "ikpikupjoi" + "value" "eioxaswdee" "value" "imexfccbxk" "value" "ouroipthpq" "value" "jbzyfznpdn" + "value" "asidljmwgb" "value" "jeazfmhrcb" "value" "dablvesuho" "value" "zuoqjiciij" + "value" "qmxxfyuodo" "value" "vkqalcokst" "value" "jhibapuhga" "value" "cmqraybrlw" + "value" "beqsnrixhl" "value" "rmqxtqcxua" "value" "ndltyojjxj" "value" "hyanpicfan" + "value" "yzutuazhmh" "value" "tumnalubch" "value" "eksvvoxziw" "value" "weqhfkosif" + "value" "wwfbpjatrp" "value" "lrhrkuyzry" "value" "uvbtcgtopw" "value" "fmyleefltp" + "value" "kkrxiaiife" "value" "gbkqhfumyu" "value" "tdmjyuitvv" "value" "jvtalmlkng" + "value" "rdsfcdvkqz" "value" "xqvjnlpssl" "value" "fuftndsnim" "value" "keklddczkd" + "value" "wrqnytptzm" "value" "rwzijctxzs" "value" "btakuczlec" "value" "fuipidfbjt" + "value" "kjiqagynco" "value" "ahjawbsqcw" "value" "iehxaaneev" "value" "ezbiwqnabg" + "value" "pnnzqcutoq" "value" "wlogkzxkpo" "value" "xzswnnldvs" "value" "qqfnugftmr" + "value" "zuccleayil" "value" "ckqebhazel" "value" "brwlqbfoat" "value" "anmcogawkg" + "value" "roqzbzpbbt" "value" "dxnprfawun" "value" "fffreqppjj" "value" "gfdzgxfdcg" + "value" "sshbuxfljd" "value" "shckmujxzo" "value" "rqurawzebz" "value" "vpehhmoxva" + "value" "vldwfdnicm" "value" "tzhjrlfvfp" "value" "ymwwctfodg" "value" "qsxfnsicrx" + "value" "gfhrrjczsp" "value" "gtqrsktbaa" "value" "dniplpxfof" "value" "htawohddyn" + "value" "dbcxnsiacw" "value" "dhfundvlpn" "value" "uewpgskfpu" "value" "cuuytorpnp" + "value" "vlcnbfqvox" "value" "jbqibabrmv" "value" "xhspgwheck" "value" "fsuovvpgng" + "value" "gcjruttnno" "value" "wxswusqpeo" "value" "qhhhipzncq" "value" "mcbuftndrr" + "value" "owjfgjqqjc" "value" "vvmkjgajwa" "value" "wvlvshnhmx" "value" "ekponflaeq" + "value" "kuiumwomxi" "value" "aoydkdfrpe" "value" "cglxptkcsz" "value" "uqbpcvkipa" + "value" "ubzgvzputq" "value" "wmyphdckda" "value" "ukdnaklmcp" "value" "ramoirrdyd" + "value" "vwayaqmtid" "value" "ltomuspfzc" "value" "wzxdkpehwf" "value" "yzcspfvcot" + "value" "cgpvvnbvlk" "value" "farwqgfyjf" "value" "lbxvlwzony" "value" "ocesqguvym" + "value" "yzviqaobku" "value" "cnngbbpowp" "value" "ucxeoqcssr" "value" "zcffhzusrl" + "value" "yzmodbpsnb" "value" "aryiyaltqw" "value" "xkaailrpns" "value" "lpahctqgna" + "value" "cnbqnvxmjp" "value" "nugjvhftma" "value" "xsgcuvxzor" "value" "xwtwtwmbgu" + "value" "emdwpvauyc" "value" "ahfktrqmgh" "value" "jznackjcrd" "value" "etcsjxoqab" + "value" "kpzmuwqbnt" "value" "dspznsgszk" "value" "rcwbzvwbva" "value" "mlznoaajqq" + "value" "iwuuxdactm" "value" "zujobawsct" "value" "snepgcispg" "value" "cgmivhyskk" + "value" "snunzlgfkd" "value" "ppdxnadmje" "value" "wtzqqecgfy" "value" "ncremxgfdb" + "value" "cblsafugqk" "value" "hjekcxfyds" "value" "faxedqgskm" "value" "jjczogqdwz" + "value" "jfbgmhtjke" "value" "nehqnkqnld" "value" "lcdchjadll" "value" "llimzyabsp" + "value" "iwapedwyle" "value" "iobkwbwceu" "value" "twmbtaxdro" "value" "nmtmjmhmdl" + "value" "ewoqykjbkc" "value" "tmyuncyoyd" "value" "dcepfcdddn" "value" "dnvwyhyhsn" + "value" "nrencopzqn" "value" "yjyffpgoop" "value" "uvqtefqdhk" "value" "yjhypaonqq" + "value" "uqvzpcvugl" "value" "cakvxrdpmj" "value" "tvzacklhdz" "value" "higdkhodzy" + "value" "ormdblyhhn" "value" "wbouqpojzl" "value" "eyhgspybnr" "value" "lywsezpzgf" + "value" "usykkwszvh" "value" "bcwncpnibg" "value" "jgcqryhsvk" "value" "yfvwesgulw" + "value" "geizujxrkg" "value" "zknlteeaxq" "value" "nqwjivcosg" "value" "qmnxipsiga" + "value" "pthacnunjj" "value" "afamsavgsi" "value" "bzfzxzecrs" "value" "sxcihybfci" + "value" "padscbypdo" "value" "gaotvjctjh" "value" "beicnwdryg" "value" "xsueeljljp" + "value" "mkrrypcfzy" "value" "ekjgqnjxyl" "value" "iyeiercbxr" "value" "rkwlgzhvvy" + "value" "hmnaoeeasz" "value" "aquymkrswt" "value" "ulnnuwyptq" "value" "xftfzsoiwc" + "value" "urkkyscfti" "value" "wabroeeoop" "value" "qpzkuxsipr" "value" "dxdngrmypg" + "value" "icatrrbcjs" "value" "fhuptkhkzm" "value" "apyzwvajot" "value" "vealtjlqyc" + "value" "khkkfmzkow" "value" "trzqdcaqdw" "value" "itmekixthv" "value" "pudgkcbwdx" + "value" "zuibhuihtz" "value" "kzuywkxlku" "value" "ogtqmpnzie" "value" "jetamrlglx" + "value" "fjdjumschq" "value" "kprzbyngsw" "value" "xeyxlxiqch" "value" "dtuhvpszzt" + "value" "fpmbbgiaao" "value" "hjlhurakwh" "value" "mshexjmkmn" "value" "cynhehkcxs" + "value" "cvbbbdzmie" "value" "cvnlzjdfgf" "value" "ifhkjgmxrd" "value" "audguegpmo" + "value" "jzstgleeby" "value" "eafrzhdhhq" "value" "fmmammvdyj" "value" "uncqdpbhwb" + "value" "fzatoyblsr" "value" "xtwlklqdna" "value" "ydqppngxvh" "value" "mkngszsxeu" + "value" "vyewicgjio" "value" "tstbluhyhj" "value" "qzxxwlfeki" "value" "ocmtsfpsgh" + "value" "xmknbbmdbf" "value" "pdjmftsmob" "value" "ygrpkpstxq" "value" "hrhiqcarju" + "value" "aadzbodres" "value" "curhymvwsx" "value" "tbqidtevrl" "value" "avchkjnlwm" + "value" "tyephutkmb" "value" "lxoaezrdxs" "value" "ctkwlhmgfz" "value" "xkiuuciwrn" + "value" "irrovfyshb" "value" "hwuofuftlr" "value" "mhbfsuaovv" "value" "wzuhzzdezi" + "value" "jlpobgvouj" "value" "qbpmtomqpu" "value" "shlwywnxpk" "value" "srkvjhetmj" + "value" "hvxefqtmqu" "value" "fazsvkljef" "value" "bstezdkmig" "value" "asbtvfzien" + "value" "vewfxcxkpf" "value" "tqkprkoixe" "value" "rcaatkjyur" "value" "euleuicawb" + "value" "ifiizdeong" "value" "cjcrpmggtu" "value" "kxggjpatkd" "value" "klwqsggtob" + "value" "mnsaklzgob" "value" "xfxlervrgn" "value" "eraxdyjftw" "value" "xrvonyieqa" + "value" "fswhywqxhy" "value" "iqzxblqkeo" "value" "rxvhmzvbcv" "value" "wvdmobfisx" + "value" "ujybghjfnf" "value" "yufagalzhk" "value" "qxbqbfcgjp" "value" "vorgqhmaoq" + "value" "zewylkylsy" "value" "vvmaucizkv" "value" "bgcoyoduda" "value" "vnsufnurol" + "value" "rtskokvklv" "value" "svvdufedug" "value" "qgdgujdvtg" "value" "rjrtvpntke" + "value" "shgetgsird" "value" "ywgeotcect" "value" "zsikdzycyt" "value" "gcsswbksnc" + "value" "qgobfhgspy" "value" "pbxrbaxnor" "value" "viwarrumob" "value" "eaetplspga" + "value" "jqmscuprwq" "value" "nkyuframnm" "value" "gygftrsdbm" "value" "qzlfnntjar" + "value" "fzzcioobeb" "value" "ydigxptqbl" "value" "bgtxhxkhvv" "value" "hggqmlgwha" + "value" "ywlqbjqeug" "value" "qwowxqzrkz" "value" "zybosgbtxt" "value" "cflarkquuv" + "value" "klaeknlbrm" "value" "ccnbldglgl" "value" "dpauqcpgyi" "value" "ylxiwiesps" + "value" "xyxmlrdbui" "value" "arqfxfqkzh" "value" "byrkeibrfb" "value" "laepwenqmc" + "value" "kluswgtjsf" "value" "mgldvzleyy" "value" "yqmzmmzwpd" "value" "tvlckdoyfe" + "value" "dmxcbvzrxg" "value" "qquwyuyvvw" "value" "pmytvtksfi" "value" "umttshfkpk" + "value" "rmdayyptch" "value" "glwrmjpotx" "value" "bgcnzgcmza" "value" "ivinvxopgz" + "value" "dmbarohbfj" "value" "rncdgqxqfq" "value" "zmmwzkjrjl" "value" "gdlztbhpeq" + "value" "zrwgpknaop" "value" "powzkcrtvv" "value" "cszvzbrmoy" "value" "dtjljhzqcm" + "value" "anznywecwk" "value" "amuwlfaxwv" "value" "ajdkqflpen" "value" "evjrybtwww" + "value" "oxsdmrdbit" "value" "yafipxfsip" "value" "xekxarmwcq" "value" "dgcesswkvc" + "value" "gdqgmwxkmt" "value" "spdyueanru" "value" "yrvmdhnnfc" "value" "aexxjlgwuo" + "value" "xpcpytommm" "value" "gjutzwoxlf" "value" "stnfirydgi" "value" "snpuvnebpy" + "value" "rfxibyjmpg" "value" "ortxlvmdoc" "value" "gdozstnglr" "value" "eqiukbyscu" + "value" "qzcrpbvatq" "value" "dwzqowbrsd" "value" "iesbitdnjd" "value" "inboyxgoqa" + "value" "lfojnetxdc" "value" "njmufqrykx" "value" "ybcdthmgws" "value" "igwekdegcw" + "value" "ajkgxmtamu" "value" "qkyfpamste" "value" "nwybjbhgep" "value" "arqqmfmmbz" + "value" "rqiyxwpuyv" "value" "nsdvirehqh" "value" "qckueiqiwh" "value" "tjnbsybxws" + "value" "jphvxuqipp" "value" "ghtoyhrfxh" "value" "erglflfnql" "value" "kngwkkzwts" + "value" "nmguhcygct" "value" "jigyicdeft" "value" "gamcdtywne" "value" "nunpqugdit" + "value" "ghqwxaqlef" "value" "nqxdrqigvf" "value" "xepfvvcovk" "value" "ezgxjiwwig" + "value" "izizuzzjuv" "value" "mallnshtok" "value" "tctrsxgnrc" "value" "exhjfssojj" + "value" "yilvzcevlj" "value" "nepxmyiuhr" "value" "dqqfcdugde" "value" "iamjlqlznh" + "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" + "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" + "value"' --command-key-pattern="R" --key-minimum=1 --key-maximum 100000 -c 50 + -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 5 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-float-score.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-float-score.yml index e3eb36ad..c1d3f263 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-float-score.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-float-score.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-load-zset-with-5-elements-parsing-float-score -description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted set with 5 elements with different floating-point numbers, gradually increasing in the size of the float to parse. This is a control benchmark for the one named memtier_benchmark-1key-load-zset-with-5-elements-hexa-score +description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted + set with 5 elements with different floating-point numbers, gradually increasing + in the size of the float to parse. This is a control benchmark for the one named + memtier_benchmark-1key-load-zset-with-5-elements-hexa-score dbconfig: configuration-parameters: save: '""' @@ -19,12 +22,14 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 -c 50 -t 4 --command "ZADD zset 2.0 element-1-simple-score 62.0 element-2-medium-score 2047.9999999999998 element-3-long-score 1.0e+30 element-4-very-long-score 1.0e+60 element-5-extra-large-score" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 --hide-histogram + arguments: --test-time 120 -c 50 -t 4 --command "ZADD zset 2.0 element-1-simple-score + 62.0 element-2-medium-score 2047.9999999999998 element-3-long-score 1.0e+30 element-4-very-long-score + 1.0e+60 element-5-extra-large-score" --command-key-pattern="P" --key-minimum=1 + --key-maximum 1 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-hexa-score.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-hexa-score.yml index 30696ee2..94adae7c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-hexa-score.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-load-zset-with-5-elements-parsing-hexa-score.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-load-zset-with-5-elements-parsing-hexa-score -description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted set with 5 elements with different valid hexadecimal floating-point numbers, gradually increasing in length of the string to parse. +description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted + set with 5 elements with different valid hexadecimal floating-point numbers, gradually + increasing in length of the string to parse. dbconfig: configuration-parameters: save: '""' @@ -19,12 +21,15 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 -c 50 -t 4 --command "ZADD zset 0x1p+1 element-1-simple-score 0x1.fp+5 element-2-medium-score 0x1.fffffffffffffp+10 element-3-long-score 0x1.ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp+100 element-4-very-long-score 0x1.fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp+200 element-5-extra-large-score" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 --hide-histogram + arguments: --test-time 120 -c 50 -t 4 --command "ZADD zset 0x1p+1 element-1-simple-score + 0x1.fp+5 element-2-medium-score 0x1.fffffffffffffp+10 element-3-long-score 0x1.ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp+100 + element-4-very-long-score 0x1.fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp+200 + element-5-extra-large-score" --command-key-pattern="P" --key-minimum=1 --key-maximum + 1 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml index e1c0cd52..8a31ccaa 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-pfadd-4KB-values-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1 HyperLogLog key. Continuously add 4KB sized random elements using the PFADD command. +description: Runs memtier_benchmark, for a keyspace length of 1 HyperLogLog key. Continuously + add 4KB sized random elements using the PFADD command. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 -c 2 -t 2 --command="PFADD hll __data__" -R --data-size=4096 --hide-histogram --test-time 180 + arguments: --pipeline 10 -c 2 -t 2 --command="PFADD hll __data__" -R --data-size=4096 --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 61 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml index f90683f2..702c8fda 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 10 elements in it and we query it using SMEMBERS that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 10 elements in it and we query it using SMEMBERS that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,9 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + dataset_name: 1key-set-10-elements-string tested-groups: - set tested-commands: @@ -23,10 +26,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="SMEMBERS set:10" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="SMEMBERS set:10" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml index 209ce6b0..00720a1f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-10-elements-smembers -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 10 elements in it and we query it using SMEMBERS that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 10 elements in it and we query it using SMEMBERS that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +11,9 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + dataset_name: 1key-set-10-elements-string tested-groups: - set tested-commands: @@ -28,5 +31,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml index fcb7c2ea..b7f1d84e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-10-elements-smismember -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 10 elements in it and we query it using SMISMEMBER with 2 elements in which one is present and the other is not. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 10 elements in it and we query it using SMISMEMBER with 2 elements in which + one is present and the other is not. ' dbconfig: configuration-parameters: save: '""' @@ -9,7 +11,9 @@ dbconfig: resources: requests: memory: 1g - init_commands: '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + init_commands: '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" + "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + dataset_name: 1key-set-10-elements-string tested-groups: - set tested-commands: @@ -23,10 +27,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SMISMEMBER set:10 lysbgqqfqw not-a-member" --hide-histogram --test-time 180 + arguments: --command="SMISMEMBER set:10 lysbgqqfqw not-a-member" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 106 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml index 6f2eba0c..ececc1ad 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-100-elements-sismember-is-a-member -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 100 elements in it and we query it using SISMEMBER in which the value is a member. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 100 elements in it and we query it using SISMEMBER in which the value is + a member. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-set-100-elements-string tested-groups: - set tested-commands: @@ -23,10 +42,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SISMEMBER set:100 lysbgqqfqw" --hide-histogram --test-time 180 + arguments: --command="SISMEMBER set:100 lysbgqqfqw" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml index ae1e5112..ea06b89c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-100-elements-sismember-not-a-member -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 100 elements in it and we query it using SISMEMBER in which the value is not a member. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 100 elements in it and we query it using SISMEMBER in which the value is + not a member. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-set-100-elements-string tested-groups: - set tested-commands: @@ -23,10 +42,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SISMEMBER set:100 not-a-member" --hide-histogram --test-time 180 + arguments: --command="SISMEMBER set:100 not-a-member" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml index ab482e56..be65ae5e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-100-elements-smembers -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 100 elements in it and we query it using SMEMBERS that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 100 elements in it and we query it using SMEMBERS that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -9,8 +10,24 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + init_commands: '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" + "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" + "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" + "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" + "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" + "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" + "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" + "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" + "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" + "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" + "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" + "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" + "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" + "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" + "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" + "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" + "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-set-100-elements-string tested-groups: - set tested-commands: @@ -28,5 +45,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml index 0885c646..2f6614bd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-100-elements-smismember -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 100 elements in it and we query it using SMISMEMBER with 2 elements in which one is present and the other is not. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 100 elements in it and we query it using SMISMEMBER with 2 elements in + which one is present and the other is not. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,24 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-set-100-elements-string tested-groups: - set tested-commands: @@ -24,10 +43,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SMISMEMBER set:100 lysbgqqfqw not-a-member" --hide-histogram --test-time 180 + arguments: --command="SMISMEMBER set:100 lysbgqqfqw not-a-member" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 106 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml index 7243515b..1003921b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-100-elements-sscan -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 100 elements in it and we query it using SMEMBERS that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 100 elements in it and we query it using SMEMBERS that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -9,8 +10,24 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + init_commands: '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" + "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" + "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" + "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" + "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" + "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" + "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" + "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" + "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" + "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" + "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" + "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" + "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" + "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" + "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" + "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" + "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 1key-set-100-elements-string tested-groups: - set tested-commands: @@ -28,5 +45,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml index 76ec81e9..74c9573a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 10M elements. We query it using SISMEMBER in which the value has 50% change of being member. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 10M + elements. We query it using SISMEMBER in which the value has 50% change of being + member. ' dbconfig: configuration-parameters: save: '""' @@ -12,7 +14,9 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 + arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum + 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 + dataset_name: 1key-set-10M-elements-integer tested-groups: - set tested-commands: @@ -26,7 +30,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SISMEMBER set:10M:elements __key__" --key-maximum 20000000 --key-prefix "" --hide-histogram --test-time 180 + arguments: --command="SISMEMBER set:10M:elements __key__" --key-maximum 20000000 + --key-prefix "" --hide-histogram --test-time 180 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml index 307d8920..4ada97a0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-10M-elements-srem-50pct-chance -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 10M elements. We query it using SISMEMBER in which the value has 50% change of being member. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 10M + elements. We query it using SISMEMBER in which the value has 50% change of being + member. ' dbconfig: configuration-parameters: save: '""' @@ -12,7 +14,9 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 + arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum + 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 + dataset_name: 1key-set-10M-elements-integer tested-groups: - set tested-commands: @@ -25,7 +29,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SREM set:10M:elements __key__" --key-maximum 20000000 --key-prefix "" --hide-histogram --test-time 120 + arguments: --command="SREM set:10M:elements __key__" --key-maximum 20000000 --key-prefix + "" --hide-histogram --test-time 120 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml index 700c6225..4641519d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-1K-elements-smembers -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 1000 elements in it and we query it using SMEMBERS that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 1000 elements in it and we query it using SMEMBERS that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -9,8 +10,174 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + init_commands: '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" + "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" + "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" + "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" + "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" + "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" + "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" + "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" + "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" + "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" + "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" + "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" + "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" + "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" + "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" + "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" + "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" + "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" + "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" + "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" + "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" + "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" + "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" + "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" + "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" + "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" + "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" + "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" + "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" + "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" + "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" + "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" + "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" + "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" + "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" + "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" + "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" + "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" + "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" + "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" + "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" + "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" + "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" + "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" + "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" + "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" + "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" + "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" + "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" + "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" + "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" + "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" + "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" + "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" + "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" + "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" + "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" + "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" + "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" + "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" + "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" + "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" + "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" + "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" + "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" + "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" + "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" + "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" + "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" + "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" + "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" + "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" + "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" + "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" + "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" + "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" + "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" + "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" + "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" + "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" + "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" + "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" + "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" + "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" + "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" + "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" + "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" + "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" + "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" + "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" + "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" + "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" + "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" + "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" + "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" + "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" + "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" + "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" + "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" + "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" + "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" + "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" + "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" + "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" + "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" + "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" + "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" + "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" + "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" + "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" + "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" + "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" + "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" + "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" + "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" + "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" + "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" + "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" + "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" + "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" + "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" + "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" + "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" + "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" + "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" + "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" + "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" + "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" + "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" + "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" + "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" + "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" + "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" + "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" + "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" + "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" + "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" + "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" + "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" + "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" + "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" + "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" + "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" + "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" + "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" + "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" + "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" + "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" + "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" + "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" + "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" + "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" + "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" + "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" + "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" + "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" + "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" + "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" + "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" + "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" + "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" + "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" + "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" + "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" + "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" + "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" + "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + dataset_name: 1key-set-1K-elements-smembers tested-groups: - set tested-commands: @@ -28,5 +195,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml index 52f3dc51..81a68c08 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 1000 elements in it and we query it using SSCAN that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 1000 elements in it and we query it using SSCAN that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -9,8 +10,174 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + init_commands: '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" + "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" + "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" + "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" + "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" + "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" + "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" + "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" + "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" + "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" + "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" + "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" + "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" + "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" + "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" + "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" + "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" + "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" + "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" + "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" + "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" + "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" + "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" + "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" + "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" + "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" + "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" + "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" + "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" + "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" + "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" + "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" + "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" + "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" + "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" + "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" + "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" + "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" + "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" + "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" + "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" + "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" + "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" + "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" + "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" + "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" + "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" + "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" + "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" + "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" + "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" + "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" + "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" + "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" + "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" + "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" + "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" + "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" + "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" + "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" + "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" + "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" + "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" + "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" + "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" + "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" + "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" + "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" + "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" + "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" + "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" + "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" + "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" + "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" + "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" + "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" + "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" + "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" + "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" + "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" + "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" + "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" + "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" + "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" + "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" + "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" + "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" + "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" + "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" + "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" + "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" + "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" + "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" + "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" + "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" + "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" + "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" + "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" + "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" + "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" + "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" + "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" + "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" + "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" + "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" + "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" + "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" + "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" + "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" + "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" + "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" + "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" + "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" + "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" + "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" + "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" + "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" + "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" + "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" + "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" + "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" + "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" + "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" + "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" + "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" + "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" + "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" + "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" + "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" + "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" + "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" + "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" + "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" + "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" + "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" + "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" + "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" + "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" + "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" + "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" + "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" + "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" + "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" + "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" + "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" + "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" + "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" + "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" + "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" + "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" + "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" + "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" + "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" + "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" + "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" + "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" + "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" + "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" + "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" + "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" + "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" + "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" + "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" + "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" + "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" + "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" + "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + dataset_name: 1key-set-1K-elements-string tested-groups: - set tested-commands: @@ -23,10 +190,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SSCAN set:1000 __key__ COUNT 100" --key-maximum 1000 --key-minimum 1 --key-prefix "" --distinct-client-seed --hide-histogram --test-time 120 + arguments: --command="SSCAN set:1000 __key__ COUNT 100" --key-maximum 1000 --key-minimum + 1 --key-prefix "" --distinct-client-seed --hide-histogram --test-time 120 resources: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml index 7996a301..656b6e32 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-1K-elements-sscan -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET contains 1000 elements in it and we query it using SSCAN that returns all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key. The SET + contains 1000 elements in it and we query it using SSCAN that returns all elements. ' dbconfig: configuration-parameters: save: '""' @@ -9,8 +10,174 @@ dbconfig: resources: requests: memory: 1g - init_commands: - '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + init_commands: '"SADD" "set:1000" "tocawprsxz" "csqcfxyzsy" "ipubipttcb" "jqurtadjro" + "zdulfflfqx" "bbfvuialin" "ifpfyncdfe" "kjeevccyof" "stttkrbfqs" "qatkvfuttq" + "ltvfnuuwil" "znartcywze" "bzursuzuei" "jlghqxtvok" "osncqcuest" "uxvibjduto" + "giubyhvaav" "joijmgposs" "lqxpnplleo" "bnatichltp" "nnfxoqebys" "lyhqvxolfw" + "caaqjozcqh" "nlqtadqinl" "hfjxrrsszf" "fussukqrph" "cbjovvgqqy" "wcpbfslakk" + "slskrnekbc" "nvonwipkta" "jhdcicttmm" "rpyroriegs" "lnuuootxmp" "ufdxqlonpg" + "qgasrnjrld" "jhocasnttw" "smwbxeqbed" "kapxglqccs" "hhwvslfxmf" "rbdabbmnrf" + "ltgidziwzm" "qpffifpdiz" "sadqcfniau" "bqoabrqwwj" "wghyakzbit" "bnxtlmiwup" + "akzsgaeqon" "zwlhpcahwu" "kfselnpkim" "dxtzxeguoi" "roczxpuisd" "myzjxvtvjh" + "alfftdxaxc" "vyiqkfoics" "dygkzcpakt" "ukprrucywq" "afzlyodwiz" "vdaebbupfe" + "wemmvswznk" "xzbqjpzqlm" "lqqivzlppd" "rrzcqyzdzf" "ncckxlmsvg" "cpjveufsvk" + "babfjxxabw" "btcvhacldb" "mqqrgbacfa" "eqaxrccwjq" "erahoeivfw" "omeatkwwtc" + "mjwrbndexu" "gktcjcfxbb" "tfonhwnuxj" "pheajlhymx" "vefgwelnfo" "gayysuldha" + "tqpqihwjtl" "eirhwkdgfq" "rnfodijavx" "erqgyscser" "nnnxouavyp" "yhejmjwwni" + "mwmcwqzbld" "ofcurtthcs" "idmjjbjvni" "ovqohpxjft" "ocoflktdhp" "kgopxvsdah" + "pyjpxqnavq" "nubsytpfao" "ddpgrvwowd" "glynpmsjcf" "whsxmqffqg" "sstqpivwip" + "cqfnhujrbj" "gsvkmnluiz" "zdmgjjyukl" "gcfcbjybkx" "qmhyoyctod" "kdodndexvr" + "tkgihmsrha" "kmifjielrw" "gefoharnza" "tcpwkimype" "nxllkzroin" "bpvbnmpekh" + "ljinllovsw" "mugdxqnjxj" "tqqmmvwact" "uidvmrqyjd" "dthtfrqkce" "efhynoxlul" + "iosqxoobrk" "sujbwndgwl" "btxehrokkw" "pmaagvqldo" "evuxmkrrfl" "dclualrzqb" + "jfqxkxgqhj" "fvemodlpgz" "lawrpikwsk" "socoxaegfa" "snomfrutha" "yxsnreuepl" + "vjihaakiof" "nnhrgirrtw" "jccorylnjg" "gehuriygwq" "icqjxcermo" "ocgjeuljxf" + "qslrwqmixc" "rhzpguhsws" "zxlbhyeckf" "iziwqojsoq" "qlorevyltp" "gbjzsedhag" + "mkxysrkpug" "bhrvnadcdk" "qxxinxaqxn" "ctnaggdbru" "fsthobmdxk" "cvnnitrrow" + "vlhtdpqavh" "vhjaphfdpj" "yhdgqenmwv" "ysntbzffxq" "emfjcnujqn" "qnqzibcmip" + "ngcxqjjpdm" "gkneclxnnt" "rhkpfsuhoq" "dgodkfjzos" "isqymcuffe" "ripecixnpr" + "dxpepbctea" "gbeizdzdyb" "aqlapmghln" "yhlalzusch" "xglrugpjkt" "ngwifjdpha" + "jvekvvldai" "hmdzsuuyrn" "ncabqesziv" "whdftyqojv" "rhzqdtxucc" "ftyxhyfokj" + "vqtixjkcbb" "krfosgrmjb" "ahcaaodvgi" "ooeswhfdnj" "jhctncrzlw" "haxesjafmh" + "vxrtzngznb" "fidsuuizcf" "mamtueyrqn" "quemrlmwod" "pkgpjwyfbh" "ckibsdtfff" + "tjnjhejnju" "puvgjfjyaf" "cvmicoarvv" "mxpzuzrzuo" "rrrfhnclbv" "xeurpmfdmo" + "yqvkykgjbe" "behdxlfdho" "dyzedskzkq" "rfhlttsuqy" "pkehotsmka" "alokvrpbih" + "mobwpcyxuk" "umwunfzsvo" "naggqdxcjm" "rakustfykw" "dtkfydidli" "kohpozxkhl" + "usjmfkopln" "axhoxkubdv" "asretszbav" "tmkoxwdgpx" "wjhaavxfge" "pcuaesomdc" + "vjhpmffzxc" "qwxzqlqter" "jjumoixniz" "ruxsmttpak" "pjdundsxrd" "kdklhpxntt" + "muhewfzihs" "dplonqlliz" "wjibkklezg" "dfemamyevk" "nryvfijxhj" "bqqohkuylc" + "wiqhmhkiel" "lftmqoxhfc" "sjbaedopjb" "dlomhvkoxg" "jhkdwtqvwl" "vqashxkrik" + "mupcilqfjg" "suahxaebee" "rqkcyxiwhz" "jqgtbgbybq" "ygbfgfefac" "kjblkrvknt" + "yajpmxmuwz" "wwowdvybjj" "bdtbaxnuko" "adfhfatarh" "vfcpevtekf" "fiugzrozky" + "spogjykkfs" "tdggmsxysk" "aoqlctikzg" "nwywtydqew" "qjrhtqgwjc" "dhzgpwewsx" + "outdlyeqvq" "trwzipsers" "qtpcwuafar" "scgjdkyetq" "aqyfvxyjqr" "xkvgnzjgrm" + "hhbceuegvh" "paitaeqrpb" "yfdsmhtria" "bxwvqvndcc" "dpyjoihqrs" "tnratexlre" + "hplvvuoscb" "muocqqypmt" "pxzkuasjek" "flrsaczxzc" "pubqtzzzko" "vpqlxtfkjz" + "fiafoggekm" "qtewhixedb" "iijjcabgak" "tqjpijliii" "uttazeawix" "hxbmykkugi" + "bekchebgys" "ffrviosqzo" "rjrptuhkav" "sldzewoxas" "uesalivsis" "maxylirjgh" + "vpzsmbjkvy" "eiziligjfr" "tqblforkpa" "nszbrpweoz" "rzanpefsfy" "cejkfhuykf" + "abinkgshoi" "gqybtjuhvq" "oqdlpaubsc" "nrbfkysxaf" "mhxojehvxx" "vuqlqdpfdn" + "orqqevpmca" "xigznrdgqy" "jzceexkqam" "szupcnvvij" "btgeubdzbb" "nojnedgabk" + "sdnkjddyut" "lbjarnpxhh" "wevfinjbqk" "dvgqwzignk" "ejzwnidqwr" "nlxwjmzwln" + "brrlblrxwa" "hyikggurti" "wybmlpqblt" "hertbwuzyw" "rwhzzytdsq" "symbgeyple" + "zbfeyptemz" "pghbwbtfmk" "mxydilgynv" "bhwytqsafu" "ecsburyjhh" "cvohdragtx" + "lscjhgztom" "giswndixdf" "etsngvbrff" "lgqazzajpx" "pypepewjvq" "nswjopvtqv" + "tuajnnqtcq" "bvvoibkfrt" "kjqeujfkoh" "diwmfuckel" "bwizktcwmb" "ughnpilqqm" + "ihealvwnxb" "thqttakyzy" "auwfujaoya" "rofnkytnhm" "ilkuddrdvh" "hmwfncgzxg" + "pzrchtwaaw" "ffksbrtbfq" "ethxaycsil" "uwiqrvcqvu" "fgcehqgsso" "yoblelzlkd" + "gjiwldcfqh" "sbrjnwxdip" "nenhiiibwx" "ebhhhgabjd" "xpkwqbfban" "pupmdjgyed" + "aejnvyfdst" "krxneqolle" "nouncgkoik" "kamgfgbxel" "fffylsswky" "agswwrfabr" + "pkvcbelpos" "mxapzqqqsw" "ywmqoaztmy" "sfuvzzxbxq" "kdcvbkrbsj" "twpiiaedpc" + "egmgddriry" "nmfihtnkel" "kqzjnkdlxd" "eovsizpcjp" "bsavjyaksg" "xlmvatfsly" + "dlhjfafskj" "wmvhvwnowp" "vjjozwrovk" "gbazuqnmit" "ubwlcefgqb" "jttqzbazgz" + "dozecfsvue" "pgdhjrxhga" "gzekysdunp" "ygoiannoht" "hklchdenoe" "sotbjzlsvz" + "qjwrnhooax" "cdghgcsoth" "mjlpvuoghe" "qclkaeciey" "oownjpxrov" "nvqfyljbef" + "tsnawydcru" "wrrgxxkxkc" "ylulwsnjay" "lxsinouutc" "ozpyyaznsh" "cmhkstsjok" + "ybckvbeoib" "fsoardckcw" "ltkauvxggz" "sqwhsgboef" "wgtjxahmef" "spoqshzjoi" + "pfvfxrrfhl" "nahweurftw" "fojjpqmbck" "zexblqeora" "qsoiwsugdv" "ksppwhhqzj" + "otadcihtmd" "imnjbkmsls" "zzenkvuesw" "kbfqdppnfa" "igehetokzq" "koujdppfua" + "wqsqzzbqhm" "tglieutcis" "owovlhorvw" "nraylduhut" "nwnyjkugcf" "kpfqxroqbs" + "xwxwosqkhm" "ollacusjzj" "wcouaiatsu" "nvkfnfzoki" "fgjnsosfrp" "pltsnzqvpi" + "rhnkzlsjtk" "ysnndkycix" "bpnfopinub" "blujwnyluy" "wgtmckqknh" "zorzyqtjtr" + "hvtlkrungk" "rgtondctpo" "mjgvtydjtm" "kcbotffyca" "gybxnvwchp" "gazojexans" + "hmcpcrjumm" "zejhycldyy" "iiissmznfe" "qvpuudyuks" "gviypfayfm" "plqbwsiuzw" + "nunchscyqc" "qocjpufxio" "iqbyikqjmx" "omwbgglqsp" "nywteueaig" "ntmgbzaivy" + "ijdgnlzprg" "rnlaakgsrf" "fpdflprzvn" "azkdbpnshy" "mvfnirshbd" "sotsxznskx" + "uzktwqcdeb" "myrrmvflyw" "jgaieawkcu" "utymwhxigo" "vtaiyncmyg" "gpodilvrnm" + "xgfzndhodu" "saqilljaid" "jxiewthqls" "nbwksmwxpx" "rwfykeeqgx" "tlnkrncpwi" + "ogyvxbgcwi" "ffcqkkzllx" "rtnhivnxtb" "vzcclamtun" "jjlefkekuw" "xjksnqifds" + "ctusqixohm" "osaekeukqx" "irlduoinie" "nifzrybfuh" "ctqxoyxbwc" "vsvhjrymqc" + "bzwxqcpftf" "ltghdkluqq" "vklwhyzqhk" "ghwcrdlbjj" "lzzptujbjp" "qlvgfplbod" + "ghepftfjgk" "aiqqyusnuv" "rspghuhpbp" "lfkqrtxocm" "iibgagtkpg" "ywiurvfbpg" + "tdceweesxh" "pvwvdaorrl" "ejlunxlwxn" "ymqxhmnidz" "lydebbpmfb" "ztjuqomjck" + "eyrbqexkff" "oqmuhlruqy" "gnrmnwaxls" "mumhqarhgg" "skbzfbeziu" "hnnfmyurhx" + "yrsizkbbwz" "azpwrzovza" "txhllnvudv" "aslibwggrp" "ubghghklvj" "jqqogagqni" + "emfqsjraia" "ctgwmawlgl" "mivctgaajt" "knycrcrsbm" "ubtiscdgrn" "ulepgommyy" + "qbhdjhoohc" "cctlfgicpv" "phfuspevwk" "oeawjlqnyg" "jpphbjtbrh" "ofykgotycd" + "csjfbpjyzq" "thmmmlqluk" "buzhjxsbkm" "pisgqibyae" "skkawcmqqt" "mmqblvrscy" + "dpkiubfzbx" "yivxcecwlp" "kbnjiilaqd" "rwrxxrnwtq" "veegnotgmj" "pbfijwccjp" + "expefhkisx" "ynnhyctikq" "bhfmhanvxe" "otclvmbilg" "hskkmrluuf" "ftnbjymlll" + "nbkaxrojqq" "qydrgilxxt" "dxufcyurjx" "fgygwdazbm" "tivnqailcl" "jwvqixjhho" + "oglqutqfcx" "wvrlxfoxff" "ropuqidkxv" "qcsxjrjcfc" "twuvkpjzzw" "fqtktfghcv" + "suhwnartid" "wvsnfinuil" "rngtndwjyg" "tsmzfswaxo" "uvlswctlhx" "llamjvxyqo" + "wovoupawzt" "caxgjftjyj" "gwzqcetcji" "yzrdbalexf" "fnpdsuozxt" "dbtbtvkqss" + "pwgjoppmgc" "wxjdgbugeu" "qchpfcigwa" "lxzdcbveuy" "bwjyghaztz" "uedehyieof" + "pfaytznuaa" "lspvrnxnjo" "zkbqvttlzy" "fkdmuxraqf" "nbizrabfuo" "fgzwwaedjy" + "gkmwutvars" "bwsdzrxzse" "txgjxzovte" "cbtpbbfrdd" "vqgztpmzhz" "rdipvyeqoi" + "bovkdabcdo" "fhobhpwwkp" "mkbkflixkr" "mjifqzmtsd" "pkcqdokojd" "dtgjnddwch" + "uboipezuni" "dfdodbelzn" "fzsoiryhfn" "krtsiucvvu" "aieekmivcb" "aeafusfzdn" + "ehnrizfmfo" "dcjlwhfstw" "wksgvbkbyw" "hvfprkjlbc" "jlgepeyhpc" "ljklggibcy" + "mhrvuemywb" "wdqygrxkya" "ystnkbogee" "flvftlpbjq" "vgfgbsbnwy" "rsivptwulz" + "bzjzucrypq" "bweysooxiv" "mmcunsiwad" "mszjkgsrio" "bvurseeqmh" "wtcpliaxmk" + "ndwiompimr" "mdcwoblmkl" "dflxukffgl" "mcojdazpfq" "tctgzmjads" "dewdgfrhos" + "iwqanwtvcd" "nfucelqjfe" "wgtrwefdsw" "skstqdgbos" "rwllkdzxrj" "qwozutlufu" + "fmpdixcckx" "jybzltmwrs" "ossjrvqmaa" "adlxahxsbq" "mbewprqunw" "xbvbujurqw" + "rnvhfxbuoi" "pyrpwxalpc" "adlryhdbpr" "gritvkzfgw" "aufhfrhccf" "umoicweaab" + "kgirldeylz" "nknlysgviv" "plbxaamppj" "ikpikupjoi" "eioxaswdee" "imexfccbxk" + "ouroipthpq" "jbzyfznpdn" "asidljmwgb" "jeazfmhrcb" "dablvesuho" "zuoqjiciij" + "qmxxfyuodo" "vkqalcokst" "jhibapuhga" "cmqraybrlw" "beqsnrixhl" "rmqxtqcxua" + "ndltyojjxj" "hyanpicfan" "yzutuazhmh" "tumnalubch" "eksvvoxziw" "weqhfkosif" + "wwfbpjatrp" "lrhrkuyzry" "uvbtcgtopw" "fmyleefltp" "kkrxiaiife" "gbkqhfumyu" + "tdmjyuitvv" "jvtalmlkng" "rdsfcdvkqz" "xqvjnlpssl" "fuftndsnim" "keklddczkd" + "wrqnytptzm" "rwzijctxzs" "btakuczlec" "fuipidfbjt" "kjiqagynco" "ahjawbsqcw" + "iehxaaneev" "ezbiwqnabg" "pnnzqcutoq" "wlogkzxkpo" "xzswnnldvs" "qqfnugftmr" + "zuccleayil" "ckqebhazel" "brwlqbfoat" "anmcogawkg" "roqzbzpbbt" "dxnprfawun" + "fffreqppjj" "gfdzgxfdcg" "sshbuxfljd" "shckmujxzo" "rqurawzebz" "vpehhmoxva" + "vldwfdnicm" "tzhjrlfvfp" "ymwwctfodg" "qsxfnsicrx" "gfhrrjczsp" "gtqrsktbaa" + "dniplpxfof" "htawohddyn" "dbcxnsiacw" "dhfundvlpn" "uewpgskfpu" "cuuytorpnp" + "vlcnbfqvox" "jbqibabrmv" "xhspgwheck" "fsuovvpgng" "gcjruttnno" "wxswusqpeo" + "qhhhipzncq" "mcbuftndrr" "owjfgjqqjc" "vvmkjgajwa" "wvlvshnhmx" "ekponflaeq" + "kuiumwomxi" "aoydkdfrpe" "cglxptkcsz" "uqbpcvkipa" "ubzgvzputq" "wmyphdckda" + "ukdnaklmcp" "ramoirrdyd" "vwayaqmtid" "ltomuspfzc" "wzxdkpehwf" "yzcspfvcot" + "cgpvvnbvlk" "farwqgfyjf" "lbxvlwzony" "ocesqguvym" "yzviqaobku" "cnngbbpowp" + "ucxeoqcssr" "zcffhzusrl" "yzmodbpsnb" "aryiyaltqw" "xkaailrpns" "lpahctqgna" + "cnbqnvxmjp" "nugjvhftma" "xsgcuvxzor" "xwtwtwmbgu" "emdwpvauyc" "ahfktrqmgh" + "jznackjcrd" "etcsjxoqab" "kpzmuwqbnt" "dspznsgszk" "rcwbzvwbva" "mlznoaajqq" + "iwuuxdactm" "zujobawsct" "snepgcispg" "cgmivhyskk" "snunzlgfkd" "ppdxnadmje" + "wtzqqecgfy" "ncremxgfdb" "cblsafugqk" "hjekcxfyds" "faxedqgskm" "jjczogqdwz" + "jfbgmhtjke" "nehqnkqnld" "lcdchjadll" "llimzyabsp" "iwapedwyle" "iobkwbwceu" + "twmbtaxdro" "nmtmjmhmdl" "ewoqykjbkc" "tmyuncyoyd" "dcepfcdddn" "dnvwyhyhsn" + "nrencopzqn" "yjyffpgoop" "uvqtefqdhk" "yjhypaonqq" "uqvzpcvugl" "cakvxrdpmj" + "tvzacklhdz" "higdkhodzy" "ormdblyhhn" "wbouqpojzl" "eyhgspybnr" "lywsezpzgf" + "usykkwszvh" "bcwncpnibg" "jgcqryhsvk" "yfvwesgulw" "geizujxrkg" "zknlteeaxq" + "nqwjivcosg" "qmnxipsiga" "pthacnunjj" "afamsavgsi" "bzfzxzecrs" "sxcihybfci" + "padscbypdo" "gaotvjctjh" "beicnwdryg" "xsueeljljp" "mkrrypcfzy" "ekjgqnjxyl" + "iyeiercbxr" "rkwlgzhvvy" "hmnaoeeasz" "aquymkrswt" "ulnnuwyptq" "xftfzsoiwc" + "urkkyscfti" "wabroeeoop" "qpzkuxsipr" "dxdngrmypg" "icatrrbcjs" "fhuptkhkzm" + "apyzwvajot" "vealtjlqyc" "khkkfmzkow" "trzqdcaqdw" "itmekixthv" "pudgkcbwdx" + "zuibhuihtz" "kzuywkxlku" "ogtqmpnzie" "jetamrlglx" "fjdjumschq" "kprzbyngsw" + "xeyxlxiqch" "dtuhvpszzt" "fpmbbgiaao" "hjlhurakwh" "mshexjmkmn" "cynhehkcxs" + "cvbbbdzmie" "cvnlzjdfgf" "ifhkjgmxrd" "audguegpmo" "jzstgleeby" "eafrzhdhhq" + "fmmammvdyj" "uncqdpbhwb" "fzatoyblsr" "xtwlklqdna" "ydqppngxvh" "mkngszsxeu" + "vyewicgjio" "tstbluhyhj" "qzxxwlfeki" "ocmtsfpsgh" "xmknbbmdbf" "pdjmftsmob" + "ygrpkpstxq" "hrhiqcarju" "aadzbodres" "curhymvwsx" "tbqidtevrl" "avchkjnlwm" + "tyephutkmb" "lxoaezrdxs" "ctkwlhmgfz" "xkiuuciwrn" "irrovfyshb" "hwuofuftlr" + "mhbfsuaovv" "wzuhzzdezi" "jlpobgvouj" "qbpmtomqpu" "shlwywnxpk" "srkvjhetmj" + "hvxefqtmqu" "fazsvkljef" "bstezdkmig" "asbtvfzien" "vewfxcxkpf" "tqkprkoixe" + "rcaatkjyur" "euleuicawb" "ifiizdeong" "cjcrpmggtu" "kxggjpatkd" "klwqsggtob" + "mnsaklzgob" "xfxlervrgn" "eraxdyjftw" "xrvonyieqa" "fswhywqxhy" "iqzxblqkeo" + "rxvhmzvbcv" "wvdmobfisx" "ujybghjfnf" "yufagalzhk" "qxbqbfcgjp" "vorgqhmaoq" + "zewylkylsy" "vvmaucizkv" "bgcoyoduda" "vnsufnurol" "rtskokvklv" "svvdufedug" + "qgdgujdvtg" "rjrtvpntke" "shgetgsird" "ywgeotcect" "zsikdzycyt" "gcsswbksnc" + "qgobfhgspy" "pbxrbaxnor" "viwarrumob" "eaetplspga" "jqmscuprwq" "nkyuframnm" + "gygftrsdbm" "qzlfnntjar" "fzzcioobeb" "ydigxptqbl" "bgtxhxkhvv" "hggqmlgwha" + "ywlqbjqeug" "qwowxqzrkz" "zybosgbtxt" "cflarkquuv" "klaeknlbrm" "ccnbldglgl" + "dpauqcpgyi" "ylxiwiesps" "xyxmlrdbui" "arqfxfqkzh" "byrkeibrfb" "laepwenqmc" + "kluswgtjsf" "mgldvzleyy" "yqmzmmzwpd" "tvlckdoyfe" "dmxcbvzrxg" "qquwyuyvvw" + "pmytvtksfi" "umttshfkpk" "rmdayyptch" "glwrmjpotx" "bgcnzgcmza" "ivinvxopgz" + "dmbarohbfj" "rncdgqxqfq" "zmmwzkjrjl" "gdlztbhpeq" "zrwgpknaop" "powzkcrtvv" + "cszvzbrmoy" "dtjljhzqcm" "anznywecwk" "amuwlfaxwv" "ajdkqflpen" "evjrybtwww" + "oxsdmrdbit" "yafipxfsip" "xekxarmwcq" "dgcesswkvc" "gdqgmwxkmt" "spdyueanru" + "yrvmdhnnfc" "aexxjlgwuo" "xpcpytommm" "gjutzwoxlf" "stnfirydgi" "snpuvnebpy" + "rfxibyjmpg" "ortxlvmdoc" "gdozstnglr" "eqiukbyscu" "qzcrpbvatq" "dwzqowbrsd" + "iesbitdnjd" "inboyxgoqa" "lfojnetxdc" "njmufqrykx" "ybcdthmgws" "igwekdegcw" + "ajkgxmtamu" "qkyfpamste" "nwybjbhgep" "arqqmfmmbz" "rqiyxwpuyv" "nsdvirehqh" + "qckueiqiwh" "tjnbsybxws" "jphvxuqipp" "ghtoyhrfxh" "erglflfnql" "kngwkkzwts" + "nmguhcygct" "jigyicdeft" "gamcdtywne" "nunpqugdit" "ghqwxaqlef" "nqxdrqigvf" + "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" + "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" + "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' + dataset_name: 1key-set-1K-elements-string tested-groups: - set tested-commands: @@ -28,5 +195,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml index 03cb27de..47715cb9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 1M elements. We query it using SISMEMBER in which the value has 50% change of being member. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 1M elements. + We query it using SISMEMBER in which the value has 50% change of being member. ' dbconfig: configuration-parameters: save: '""' @@ -12,7 +13,9 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD set:1M:elements __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + arguments: --command="SADD set:1M:elements __key__" --command-key-pattern=P --key-maximum + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + dataset_name: 1key-set-1M-elements-integer tested-groups: - set tested-commands: @@ -26,7 +29,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SISMEMBER set:1M:elements __key__" --key-maximum 2000000 --key-prefix "" --hide-histogram --test-time 180 + arguments: --command="SISMEMBER set:1M:elements __key__" --key-maximum 2000000 + --key-prefix "" --hide-histogram --test-time 180 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml index c505ee96..b6821f70 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-set-200K-elements-sadd-constant -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 200K elements. The SADD is being issued on a SET with constant size (we are just updating its members but not increasing). ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 200K + elements. The SADD is being issued on a SET with constant size (we are just updating + its members but not increasing). ' dbconfig: configuration-parameters: save: '""' @@ -12,7 +14,9 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD myset __key__" --command-key-pattern=P --pipeline 100 --key-maximum 200000 --key-prefix "" -n 200000 --hide-histogram -t 1 -c 1 + arguments: --command="SADD myset __key__" --command-key-pattern=P --pipeline 100 + --key-maximum 200000 --key-prefix "" -n 200000 --hide-histogram -t 1 -c 1 + dataset_name: 1key-set-200K-elements-integer tested-groups: - set tested-commands: @@ -25,7 +29,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD myset __key__" --key-maximum 200000 --key-prefix "" --hide-histogram --test-time 180 + arguments: --command="SADD myset __key__" --key-maximum 200000 --key-prefix "" --hide-histogram + --test-time 180 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml index 076947c5..af11da71 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-2M-elements-sadd-increasing.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-set-2M-elements-sadd-increasing -description: 'Runs memtier_benchmark, for a keyspace length of 1 SET key with 2M elements at the end of benchmark.' +description: Runs memtier_benchmark, for a keyspace length of 1 SET key with 2M elements + at the end of benchmark. dbconfig: configuration-parameters: save: '""' @@ -21,7 +22,8 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="SADD myset __key__" --command-key-pattern=P --key-maximum 2000000 --key-prefix "" -n 1000000 -c 5 -t 4 --hide-histogram + arguments: --command="SADD myset __key__" --command-key-pattern=P --key-maximum + 2000000 --key-prefix "" -n 1000000 -c 5 -t 4 --hide-histogram resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml index 07ae55d5..92afcda7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we increment the score of memebers using ZINCRBY. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements and we increment the score of memebers using ZINCRBY. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 resources: requests: memory: 1g + dataset_name: 1key-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 + arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' memory: 2g - priority: 67 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml index f857cfcb..243e9fd9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrank-100K-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100K elements and we query it using ZRANK. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100K elements and we query it using ZRANK. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 100000 --key-prefix "" -n allkeys --hide-histogram -t 1 -c 1 + arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P + --key-maximum 100000 --key-prefix "" -n allkeys --hide-histogram -t 1 -c 1 resources: requests: memory: 1g + dataset_name: 1key-100K-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 100000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 + arguments: --command="ZRANK key1 __key__" --key-maximum 100000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' memory: 2g - priority: 72 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml index 819ede35..dc985d7a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrank-10M-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 10M elements and we query it using ZRANK. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 10M elements and we query it using ZRANK. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 10000000 --key-prefix "" -n 1000000 --hide-histogram -t 10 -c 1 + arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P + --key-maximum 10000000 --key-prefix "" -n 1000000 --hide-histogram -t 10 -c + 1 resources: requests: memory: 1g + dataset_name: 1key-10M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 10000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 + arguments: --command="ZRANK key1 __key__" --key-maximum 10000000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' memory: 2g - priority: 72 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml index aac26320..0894a3fb 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrank-1M-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZRANK. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements and we query it using ZRANK. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 100000 --hide-histogram -t 10 -c 1 + arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P + --key-maximum 1000000 --key-prefix "" -n 100000 --hide-histogram -t 10 -c 1 resources: requests: memory: 1g + dataset_name: 1key-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 + arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' memory: 2g - priority: 72 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml index d6a2925f..437052b3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml @@ -1,6 +1,14 @@ version: 0.4 name: memtier_benchmark-1key-zrem-5M-elements-pipeline-1 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 5M elements and we remove members using ZREM. Throughout the course of the benchmark,the sorted set contains fewer members as we continuously remove them. The chance that we ask for a member to be removed, which was already removed, also increases. Starting with a large number of members helps us to have suffienct number of members for the duration of the benchmark, however the preload stage takes longer to complete. NOTE: using the --randomize flag ensures that we continue to remove elements the longer we run the test. Without the flag, we stop removing elements after some time, possibly we keep generating the same random numbers. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 5M elements and we remove members using ZREM. Throughout the + course of the benchmark,the sorted set contains fewer members as we continuously + remove them. The chance that we ask for a member to be removed, which was already + removed, also increases. Starting with a large number of members helps us to have + suffienct number of members for the duration of the benchmark, however the preload + stage takes longer to complete. NOTE: using the --randomize flag ensures that we + continue to remove elements the longer we run the test. Without the flag, we stop + removing elements after some time, possibly we keep generating the same random numbers. ' dbconfig: configuration-parameters: save: '""' @@ -9,10 +17,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 5000000 --key-prefix "" -n 5000000 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum + 5000000 --key-prefix "" -n 5000000 --hide-histogram -t 1 -c 1 resources: requests: memory: 1g + dataset_name: 1key-5M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +35,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREM key1 __key__" --key-maximum 5000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 --randomize + arguments: --command="ZREM key1 __key__" --key-maximum 5000000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 --randomize resources: requests: cpus: '4' memory: 2g - priority: 36 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml index 6a706d01..7a68dfb0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 256K elements of 1KB each and we query it using ZREVRANGEBYSCORE. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 256K elements of 1KB each and we query it using ZREVRANGEBYSCORE. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum + 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c + 1 resources: requests: memory: 1g + dataset_name: 1key-256K-elements tested-groups: - sorted-set tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANGEBYSCORE key1 262144 1 WITHSCORES LIMIT 1 10" --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZREVRANGEBYSCORE key1 262144 1 WITHSCORES LIMIT 1 10" --hide-histogram + --test-time 180 --pipeline 1 resources: requests: cpus: '4' memory: 2g - priority: 16 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml index e7666009..c269974c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 256K elements of 1KB each and we query it using ZREVRANGEBYSCORE. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 256K elements of 1KB each and we query it using ZREVRANGEBYSCORE. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum + 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c + 1 resources: requests: memory: 1g + dataset_name: 1key-256K-elements tested-groups: - sorted-set tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANGEBYSCORE key1 262144 1 WITHSCORES LIMIT 1 10" --hide-histogram --test-time 180 --pipeline 10 + arguments: --command="ZREVRANGEBYSCORE key1 262144 1 WITHSCORES LIMIT 1 10" --hide-histogram + --test-time 180 --pipeline 10 resources: requests: cpus: '4' memory: 2g - priority: 16 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml index 83c003bf..30e17a83 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZREVRANK. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements and we query it using ZREVRANK. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 resources: requests: memory: 1g + dataset_name: 1key-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 + arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R + --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' memory: 2g - priority: 58 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml index 46a264eb..3e8fb21c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 10 elements in it and we query it using ZRANGE BYSCORE with a range of all elements. The scores are long numbers.' +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 10 elements in it and we query it using ZRANGE BYSCORE with + a range of all elements. The scores are long numbers. dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,11 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:10:long_score" "10000000" "lysbgqqfqw" "10000001" "mtccjerdon" "10000002" "jekkafodvk" "10000003" "nmgxcctxpn" "10000004" "vyqqkuszzh" "10000005" "pytrnqdhvs" "10000006" "oguwnmniig" "10000007" "gekntrykfh" "10000008" "nhfnbxqgol" "10000009" "cgoeihlnei"' + - '"ZADD" "zset:10:long_score" "10000000" "lysbgqqfqw" "10000001" "mtccjerdon" "10000002" + "jekkafodvk" "10000003" "nmgxcctxpn" "10000004" "vyqqkuszzh" "10000005" "pytrnqdhvs" + "10000006" "oguwnmniig" "10000007" "gekntrykfh" "10000008" "nhfnbxqgol" "10000009" + "cgoeihlnei"' + dataset_name: 1key-zset-10-elements-zrange-all-elements-long-scores tested-groups: - sorted-set tested-commands: @@ -23,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGE zset:10:long_score 0 1000000000 BYSCORE WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGE zset:10:long_score 0 1000000000 BYSCORE WITHSCORES" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml index 4193db74..78de0b35 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-10-elements-zrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 10 elements in it and we query it using ZRANGE BYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 10 elements in it and we query it using ZRANGE BYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,10 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:10" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei"' + - '"ZADD" "zset:10" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" + "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" + "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei"' + dataset_name: 1key-zset-10-elements-zrange-all-elements tested-groups: - sorted-set tested-commands: @@ -23,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGE zset:10 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGE zset:10 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml index 02dc3c27..93d8e177 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-100-elements-zrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100 elements in it and we query it using ZRANGE BYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100 elements in it and we query it using ZRANGE BYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,36 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" + "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" + "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" + "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" + "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" + "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" + "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" + "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" + "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" + "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" + "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" + "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" + "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" + "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" + "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" + "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" + "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" + "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" + "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" + "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" + "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" + "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" + "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" + "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" + "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" + "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" + "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" + "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" + "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + dataset_name: 1key-zset-100-elements-zrange-all-elements tested-groups: - sorted-set tested-commands: @@ -23,10 +54,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGE zset:100 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGE zset:100 0 1 BYSCORE WITHSCORES" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml index fdad484d..cb32c294 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100 elements in it and we query it using ZRANGEBYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100 elements in it and we query it using ZRANGEBYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,36 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:100:long_score" "10000000" "vyoomgwuzv" "10000001" "xamjodnbpf" "10000002" "ewomnmugfa" "10000003" "ljcgdooafo" "10000004" "pcxdhdjwnf" "10000005" "djetcyfxuc" "10000006" "licotqplim" "10000007" "alqlzsvuuz" "10000008" "ijsmoyesvd" "10000009" "whmotknaff" "10000010" "rkaznetutk" "10000011" "ksqpdywgdd" "10000012" "gorgpnnqwr" "10000013" "gekntrykfh" "10000014" "rjkknoigmu" "10000015" "luemuetmia" "10000016" "gxephxbdru" "10000017" "ncjfckgkcl" "10000018" "hhjclfbbka" "10000019" "cgoeihlnei" "10000020" "zwnitejtpg" "10000021" "upodnpqenn" "10000022" "mibvtmqxcy" "10000023" "htvbwmfyic" "10000024" "rqvryfvlie" "10000025" "nxcdcaqgit" "10000026" "gfdqdrondm" "10000027" "lysbgqqfqw" "10000028" "nxzsnkmxvi" "10000029" "nsxaigrnje" "10000030" "cwaveajmcz" "10000031" "xsepfhdizi" "10000032" "owtkxlzaci" "10000033" "agsdggdghc" "10000034" "tcjvjofxtd" "10000035" "kgqrovsxce" "10000036" "ouuybhtvyb" "10000037" "ueyrvldzwl" "10000038" "vpbkvwgxsf" "10000039" "pytrnqdhvs" "10000040" "qbiwbqiubb" "10000041" "ssjqrsluod" "10000042" "urvgxwbiiz" "10000043" "ujrxcmpvsq" "10000044" "mtccjerdon" "10000045" "xczfmrxrja" "10000046" "imyizmhzjk" "10000047" "oguwnmniig" "10000048" "mxwgdcutnb" "10000049" "pqyurbvifk" "10000050" "ccagtnjilc" "10000051" "mbxohpancs" "10000052" "lgrkndhekf" "10000053" "eqlgkwosie" "10000054" "jxoxtnzujs" "10000055" "lbtpbknelm" "10000056" "ichqzmiyot" "10000057" "mbgehjiauu" "10000058" "aovfsvbwjg" "10000059" "nmgxcctxpn" "10000060" "vyqqkuszzh" "10000061" "rojeolnopp" "10000062" "ibhohmfxzt" "10000063" "qbyhorvill" "10000064" "nhfnbxqgol" "10000065" "wkbasfyzqz" "10000066" "mjjuylgssm" "10000067" "imdqxmkzdj" "10000068" "oapbvnisyq" "10000069" "bqntlsaqjb" "10000070" "ocrcszcznp" "10000071" "hhniikmtsx" "10000072" "hlpdstpvzw" "10000073" "wqiwdbncmt" "10000074" "vymjzlzqcn" "10000075" "hhjchwjlmc" "10000076" "ypfeltycpy" "10000077" "qjyeqcfhjj" "10000078" "uapsgmizgh" "10000079" "owbbdezgxn" "10000080" "qrosceblyo" "10000081" "sahqeskveq" "10000082" "dapacykoah" "10000083" "wvcnqbvlnf" "10000084" "perfwnpvkl" "10000085" "ulbrotlhze" "10000086" "fhuvzpxjbc" "10000087" "holjcdpijr" "10000088" "onzjrteqmu" "10000089" "pquewclxuy" "10000090" "vpmpffdoqz" "10000091" "eouliovvra" "10000092" "vxcbagyymm" "10000093" "jekkafodvk" "10000094" "ypekeuutef" "10000095" "dlbqcynhrn" "10000096" "erxulvebrj" "10000097" "qwxrsgafzy" "10000098" "dlsjwmqzhx" "10000099" "exvhmqxvvp"' + - '"ZADD" "zset:100:long_score" "10000000" "vyoomgwuzv" "10000001" "xamjodnbpf" + "10000002" "ewomnmugfa" "10000003" "ljcgdooafo" "10000004" "pcxdhdjwnf" "10000005" + "djetcyfxuc" "10000006" "licotqplim" "10000007" "alqlzsvuuz" "10000008" "ijsmoyesvd" + "10000009" "whmotknaff" "10000010" "rkaznetutk" "10000011" "ksqpdywgdd" "10000012" + "gorgpnnqwr" "10000013" "gekntrykfh" "10000014" "rjkknoigmu" "10000015" "luemuetmia" + "10000016" "gxephxbdru" "10000017" "ncjfckgkcl" "10000018" "hhjclfbbka" "10000019" + "cgoeihlnei" "10000020" "zwnitejtpg" "10000021" "upodnpqenn" "10000022" "mibvtmqxcy" + "10000023" "htvbwmfyic" "10000024" "rqvryfvlie" "10000025" "nxcdcaqgit" "10000026" + "gfdqdrondm" "10000027" "lysbgqqfqw" "10000028" "nxzsnkmxvi" "10000029" "nsxaigrnje" + "10000030" "cwaveajmcz" "10000031" "xsepfhdizi" "10000032" "owtkxlzaci" "10000033" + "agsdggdghc" "10000034" "tcjvjofxtd" "10000035" "kgqrovsxce" "10000036" "ouuybhtvyb" + "10000037" "ueyrvldzwl" "10000038" "vpbkvwgxsf" "10000039" "pytrnqdhvs" "10000040" + "qbiwbqiubb" "10000041" "ssjqrsluod" "10000042" "urvgxwbiiz" "10000043" "ujrxcmpvsq" + "10000044" "mtccjerdon" "10000045" "xczfmrxrja" "10000046" "imyizmhzjk" "10000047" + "oguwnmniig" "10000048" "mxwgdcutnb" "10000049" "pqyurbvifk" "10000050" "ccagtnjilc" + "10000051" "mbxohpancs" "10000052" "lgrkndhekf" "10000053" "eqlgkwosie" "10000054" + "jxoxtnzujs" "10000055" "lbtpbknelm" "10000056" "ichqzmiyot" "10000057" "mbgehjiauu" + "10000058" "aovfsvbwjg" "10000059" "nmgxcctxpn" "10000060" "vyqqkuszzh" "10000061" + "rojeolnopp" "10000062" "ibhohmfxzt" "10000063" "qbyhorvill" "10000064" "nhfnbxqgol" + "10000065" "wkbasfyzqz" "10000066" "mjjuylgssm" "10000067" "imdqxmkzdj" "10000068" + "oapbvnisyq" "10000069" "bqntlsaqjb" "10000070" "ocrcszcznp" "10000071" "hhniikmtsx" + "10000072" "hlpdstpvzw" "10000073" "wqiwdbncmt" "10000074" "vymjzlzqcn" "10000075" + "hhjchwjlmc" "10000076" "ypfeltycpy" "10000077" "qjyeqcfhjj" "10000078" "uapsgmizgh" + "10000079" "owbbdezgxn" "10000080" "qrosceblyo" "10000081" "sahqeskveq" "10000082" + "dapacykoah" "10000083" "wvcnqbvlnf" "10000084" "perfwnpvkl" "10000085" "ulbrotlhze" + "10000086" "fhuvzpxjbc" "10000087" "holjcdpijr" "10000088" "onzjrteqmu" "10000089" + "pquewclxuy" "10000090" "vpmpffdoqz" "10000091" "eouliovvra" "10000092" "vxcbagyymm" + "10000093" "jekkafodvk" "10000094" "ypekeuutef" "10000095" "dlbqcynhrn" "10000096" + "erxulvebrj" "10000097" "qwxrsgafzy" "10000098" "dlsjwmqzhx" "10000099" "exvhmqxvvp"' + dataset_name: 1key-zset-100-elements-zrangebyscore-all-elements-long-scores tested-groups: - sorted-set tested-commands: @@ -23,10 +54,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGEBYSCORE zset:100:long_score 0 1000000000 WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGEBYSCORE zset:100:long_score 0 1000000000 WITHSCORES" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 7 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml index 101920ce..d5884e20 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100 elements in it and we query it using ZRANGEBYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100 elements in it and we query it using ZRANGEBYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,36 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" + "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" + "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" + "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" + "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" + "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" + "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" + "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" + "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" + "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" + "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" + "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" + "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" + "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" + "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" + "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" + "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" + "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" + "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" + "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" + "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" + "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" + "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" + "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" + "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" + "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" + "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" + "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" + "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + dataset_name: 1key-zset-100-elements-zrangebyscore-all-elements tested-groups: - sorted-set tested-commands: @@ -23,10 +54,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGEBYSCORE zset:100 0 1 WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGEBYSCORE zset:100 0 1 WITHSCORES" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - priority: 7 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml index 1e6033b2..b9406a54 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-100-elements-zscan -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100 elements in it and we query it using ZRANGE BYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100 elements in it and we query it using ZRANGE BYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,36 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + - '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" + "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" + "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" + "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" + "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" + "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" + "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" + "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" + "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" + "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" + "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" + "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" + "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" + "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" + "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" + "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" + "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" + "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" + "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" + "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" + "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" + "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" + "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" + "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" + "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" + "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" + "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" + "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" + "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' + dataset_name: 1key-zset-100-elements-zscan tested-groups: - sorted-set tested-commands: @@ -28,5 +59,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml index 5b849b0a..ea0208f7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-1K-elements-zrange-all-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1K elements in it and we query it using ZRANGE BYSCORE with a range of all elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1K elements in it and we query it using ZRANGE BYSCORE with + a range of all elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,293 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:1000" "0.645108" "iehxaaneev" "0.793870" "icatrrbcjs" "0.558445" "aieekmivcb" "0.712596" "xwtwtwmbgu" "0.138467" "ctnaggdbru" "0.319593" "nouncgkoik" "0.193744" "naggqdxcjm" "0.238679" "qjrhtqgwjc" "0.308197" "ihealvwnxb" "0.903443" "hggqmlgwha" "0.210797" "pjdundsxrd" "0.706360" "zcffhzusrl" "0.392186" "hmcpcrjumm" "0.392543" "iiissmznfe" "0.024854" "caaqjozcqh" "0.169284" "ooeswhfdnj" "0.545674" "txgjxzovte" "0.943467" "xpcpytommm" "0.130763" "icqjxcermo" "0.167315" "vqtixjkcbb" "0.629596" "wwfbpjatrp" "0.413113" "vtaiyncmyg" "0.457128" "aslibwggrp" "0.105554" "bpvbnmpekh" "0.771857" "gaotvjctjh" "0.306570" "diwmfuckel" "0.939014" "dgcesswkvc" "0.905870" "cflarkquuv" "0.063393" "lqqivzlppd" "0.582370" "iwqanwtvcd" "0.031539" "nvonwipkta" "0.720765" "rcwbzvwbva" "0.315533" "sbrjnwxdip" "0.688803" "kuiumwomxi" "0.890704" "qgobfhgspy" "0.334490" "wmvhvwnowp" "0.673452" "uewpgskfpu" "0.819089" "cvnlzjdfgf" "0.846270" "mhbfsuaovv" "0.652710" "anmcogawkg" "0.778304" "xsueeljljp" "0.771838" "padscbypdo" "0.177771" "tjnjhejnju" "0.793709" "dxdngrmypg" "0.799628" "itmekixthv" "0.017343" "giubyhvaav" "0.004991" "bbfvuialin" "0.580003" "tctgzmjads" "0.405932" "mvfnirshbd" "0.851340" "asbtvfzien" "0.226860" "vqashxkrik" "0.391362" "gazojexans" "0.287772" "wybmlpqblt" "0.191989" "mobwpcyxuk" "0.224179" "sjbaedopjb" "0.202665" "axhoxkubdv" "0.968856" "rqiyxwpuyv" "0.483072" "jpphbjtbrh" "0.991346" "mvmsikqfxu" "0.350243" "ltkauvxggz" "0.588627" "rwllkdzxrj" "0.039496" "hhwvslfxmf" "0.700638" "cgpvvnbvlk" "0.313291" "fgcehqgsso" "0.343576" "oownjpxrov" "0.192722" "umwunfzsvo" "0.273418" "jzceexkqam" "0.968219" "arqqmfmmbz" "0.394788" "plqbwsiuzw" "0.378863" "rhnkzlsjtk" "0.605956" "eioxaswdee" "0.438622" "rspghuhpbp" "0.356931" "zexblqeora" "0.009694" "stttkrbfqs" "0.620955" "rmqxtqcxua" "0.713440" "emdwpvauyc" "0.999344" "olezxlliej" "0.361739" "imnjbkmsls" "0.308247" "thqttakyzy" "0.424859" "jjlefkekuw" "0.036802" "qgasrnjrld" "0.160174" "whdftyqojv" "0.725586" "snepgcispg" "0.004061" "ipubipttcb" "0.702881" "ocesqguvym" "0.206341" "qwxzqlqter" "0.831086" "xmknbbmdbf" "0.353833" "spoqshzjoi" "0.029532" "slskrnekbc" "0.389068" "gybxnvwchp" "0.520218" "uvlswctlhx" "0.872011" "ujybghjfnf" "0.299529" "lgqazzajpx" "0.153536" "yhlalzusch" "0.611873" "jeazfmhrcb" "0.795973" "vealtjlqyc" "0.284121" "ejzwnidqwr" "0.429848" "nifzrybfuh" "0.133500" "qlorevyltp" "0.870113" "wvdmobfisx" "0.240635" "aqyfvxyjqr" "0.903983" "zybosgbtxt" "0.305875" "bvvoibkfrt" "0.132423" "iziwqojsoq" "0.041522" "qpffifpdiz" "0.085682" "ocoflktdhp" "0.159059" "ncabqesziv" "0.650525" "zuccleayil" "0.354068" "pfvfxrrfhl" "0.546089" "rdipvyeqoi" "0.452595" "yrsizkbbwz" "0.723931" "iwuuxdactm" "0.595940" "mbewprqunw" "0.933906" "ajdkqflpen" "0.696150" "wmyphdckda" "0.841744" "lxoaezrdxs" "0.461889" "jqqogagqni" "0.141414" "yhdgqenmwv" "0.347382" "wrrgxxkxkc" "0.398727" "omwbgglqsp" "0.443000" "ymqxhmnidz" "0.765094" "nqwjivcosg" "0.986056" "tctrsxgnrc" "0.576107" "ndwiompimr" "0.349571" "cmhkstsjok" "0.734824" "jfbgmhtjke" "0.929214" "gdlztbhpeq" "0.102103" "kmifjielrw" "0.796464" "khkkfmzkow" "0.044303" "akzsgaeqon" "0.349244" "ozpyyaznsh" "0.282090" "dvgqwzignk" "0.124180" "lawrpikwsk" "0.145508" "qnqzibcmip" "0.014177" "jlghqxtvok" "0.271586" "orqqevpmca" "0.941327" "yrvmdhnnfc" "0.964838" "ajkgxmtamu" "0.681722" "mcbuftndrr" "0.524113" "caxgjftjyj" "0.432128" "bzwxqcpftf" "0.167489" "krfosgrmjb" "0.309948" "ilkuddrdvh" "0.910226" "byrkeibrfb" "0.382510" "bpnfopinub" "0.152318" "gbeizdzdyb" "0.570025" "vgfgbsbnwy" "0.290087" "zbfeyptemz" "0.376504" "wcouaiatsu" "0.071776" "omeatkwwtc" "0.029506" "cbjovvgqqy" "0.484980" "ofykgotycd" "0.043870" "bnxtlmiwup" "0.751689" "uqvzpcvugl" "0.419781" "rwfykeeqgx" "0.087991" "nubsytpfao" "0.808363" "xeyxlxiqch" "0.187833" "rrrfhnclbv" "0.864568" "mnsaklzgob" "0.725490" "zujobawsct" "0.204763" "pcuaesomdc" "0.223025" "lftmqoxhfc" "0.506344" "fgygwdazbm" "0.261202" "maxylirjgh" "0.410370" "jgaieawkcu" "0.260167" "ffrviosqzo" "0.250480" "fiafoggekm" "0.563103" "wksgvbkbyw" "0.974324" "nmguhcygct" "0.259207" "bekchebgys" "0.783447" "hmnaoeeasz" "0.764739" "zknlteeaxq" "0.828842" "qzxxwlfeki" "0.464344" "knycrcrsbm" "0.984059" "izizuzzjuv" "0.384700" "blujwnyluy" "0.930637" "zrwgpknaop" "0.656346" "fffreqppjj" "0.051069" "alfftdxaxc" "0.320961" "ywmqoaztmy" "0.279848" "lbjarnpxhh" "0.294326" "ecsburyjhh" "0.806331" "jetamrlglx" "0.208517" "ruxsmttpak" "0.257535" "hxbmykkugi" "0.821400" "jzstgleeby" "0.546144" "bovkdabcdo" "0.226768" "jhkdwtqvwl" "0.398483" "iqbyikqjmx" "0.125020" "snomfrutha" "0.264133" "eiziligjfr" "0.043614" "bqoabrqwwj" "0.411120" "utymwhxigo" "0.850358" "bstezdkmig" "0.485876" "csjfbpjyzq" "0.528742" "yzrdbalexf" "0.110554" "uidvmrqyjd" "0.751337" "yjhypaonqq" "0.074346" "gktcjcfxbb" "0.020820" "lqxpnplleo" "0.234692" "vfcpevtekf" "0.157122" "xglrugpjkt" "0.174485" "fidsuuizcf" "0.939223" "gdqgmwxkmt" "0.436623" "ghepftfjgk" "0.071851" "mjwrbndexu" "0.847464" "shlwywnxpk" "0.646937" "wlogkzxkpo" "0.532516" "pwgjoppmgc" "0.592209" "ossjrvqmaa" "0.598701" "rnvhfxbuoi" "0.443002" "lydebbpmfb" "0.279549" "sdnkjddyut" "0.877963" "zewylkylsy" "0.080681" "rnfodijavx" "0.696470" "ukdnaklmcp" "0.102279" "tcpwkimype" "0.881048" "bgcoyoduda" "0.415925" "gpodilvrnm" "0.848481" "srkvjhetmj" "0.040637" "ltgidziwzm" "0.244640" "tnratexlre" "0.075067" "tfonhwnuxj" "0.034629" "rpyroriegs" "0.887395" "rjrtvpntke" "0.685654" "vvmkjgajwa" "0.400525" "nywteueaig" "0.435228" "vklwhyzqhk" "0.060039" "afzlyodwiz" "0.510563" "ropuqidkxv" "0.048751" "roczxpuisd" "0.269116" "mhxojehvxx" "0.988874" "dqqfcdugde" "0.240165" "qtpcwuafar" "0.750459" "uvqtefqdhk" "0.828087" "tstbluhyhj" "0.861661" "kxggjpatkd" "0.351980" "wgtjxahmef" "0.440586" "tdceweesxh" "0.897607" "qzlfnntjar" "0.564519" "ljklggibcy" "0.372248" "nwnyjkugcf" "0.098880" "qmhyoyctod" "0.545321" "bwsdzrxzse" "0.996184" "kmcwshsbye" "0.819622" "ifhkjgmxrd" "0.034752" "lnuuootxmp" "0.243929" "yfdsmhtria" "0.317712" "pupmdjgyed" "0.706819" "aryiyaltqw" "0.755626" "eyhgspybnr" "0.066966" "babfjxxabw" "0.681568" "qhhhipzncq" "0.289070" "rwhzzytdsq" "0.040067" "rbdabbmnrf" "0.325428" "sfuvzzxbxq" "0.377881" "fgjnsosfrp" "0.737437" "llimzyabsp" "0.035594" "ufdxqlonpg" "0.343033" "mjlpvuoghe" "0.189450" "dyzedskzkq" "0.671180" "dbcxnsiacw" "0.679152" "fsuovvpgng" "0.919742" "tvlckdoyfe" "0.191694" "pkehotsmka" "0.219460" "nryvfijxhj" "0.188159" "yqvkykgjbe" "0.564495" "jlgepeyhpc" "0.238642" "nwywtydqew" "0.751883" "cakvxrdpmj" "0.894821" "eaetplspga" "0.630431" "lrhrkuyzry" "0.358602" "ksppwhhqzj" "0.489667" "skkawcmqqt" "0.778531" "mkrrypcfzy" "0.101774" "tkgihmsrha" "0.268255" "oqdlpaubsc" "0.577108" "mdcwoblmkl" "0.260332" "rjrptuhkav" "0.516929" "wvsnfinuil" "0.941773" "aexxjlgwuo" "0.196086" "kohpozxkhl" "0.137598" "qxxinxaqxn" "0.378124" "pltsnzqvpi" "0.579231" "mcojdazpfq" "0.240701" "xkvgnzjgrm" "0.898586" "fzzcioobeb" "0.264136" "tqblforkpa" "0.448451" "skbzfbeziu" "0.051773" "vyiqkfoics" "0.536133" "lxzdcbveuy" "0.502064" "hskkmrluuf" "0.698222" "ltomuspfzc" "0.590610" "fmpdixcckx" "0.057498" "ukprrucywq" "0.660543" "vldwfdnicm" "0.826104" "fzatoyblsr" "0.754438" "wbouqpojzl" "0.117783" "pmaagvqldo" "0.533611" "wxjdgbugeu" "0.025197" "nlqtadqinl" "0.760125" "jgcqryhsvk" "0.551085" "uboipezuni" "0.203084" "tmkoxwdgpx" "0.415950" "xgfzndhodu" "0.271285" "vuqlqdpfdn" "0.385063" "zorzyqtjtr" "0.537420" "uedehyieof" "0.972732" "jphvxuqipp" "0.733064" "faxedqgskm" "0.342786" "cdghgcsoth" "0.903818" "qwowxqzrkz" "0.653952" "roqzbzpbbt" "0.768345" "sxcihybfci" "0.892237" "pbxrbaxnor" "0.764531" "geizujxrkg" "0.620438" "beqsnrixhl" "0.521196" "llamjvxyqo" "0.699100" "yzcspfvcot" "0.459957" "ubghghklvj" "0.297416" "giswndixdf" "0.086339" "kgopxvsdah" "0.000782" "tocawprsxz" "0.426201" "ctusqixohm" "0.339036" "hklchdenoe" "0.276883" "btgeubdzbb" "0.860669" "cjcrpmggtu" "0.147353" "ngcxqjjpdm" "0.875443" "vorgqhmaoq" "0.923510" "bgcnzgcmza" "0.087182" "pyjpxqnavq" "0.634058" "tdmjyuitvv" "0.963838" "igwekdegcw" "0.235680" "spogjykkfs" "0.675610" "vlcnbfqvox" "0.661566" "tzhjrlfvfp" "0.317132" "ebhhhgabjd" "0.118838" "evuxmkrrfl" "0.246357" "pxzkuasjek" "0.450004" "hnnfmyurhx" "0.623882" "yzutuazhmh" "0.331435" "eovsizpcjp" "0.218206" "dfemamyevk" "0.935043" "evjrybtwww" "0.820919" "audguegpmo" "0.966038" "nwybjbhgep" "0.748183" "nrencopzqn" "0.287079" "hyikggurti" "0.375950" "xwxwosqkhm" "0.388941" "kcbotffyca" "0.676492" "xhspgwheck" "0.782514" "rkwlgzhvvy" "0.628528" "tumnalubch" "0.672107" "dhfundvlpn" "0.661732" "qsxfnsicrx" "0.975140" "gamcdtywne" "0.608014" "asidljmwgb" "0.897256" "gygftrsdbm" "0.349942" "ybckvbeoib" "0.932954" "anznywecwk" "0.726428" "cgmivhyskk" "0.843359" "xkiuuciwrn" "0.023708" "lyhqvxolfw" "0.822799" "eafrzhdhhq" "0.530864" "dbtbtvkqss" "0.848648" "hvxefqtmqu" "0.866428" "eraxdyjftw" "0.446144" "eyrbqexkff" "0.048181" "dxtzxeguoi" "0.683328" "owjfgjqqjc" "0.489625" "pisgqibyae" "0.970240" "nsdvirehqh" "0.583183" "wgtrwefdsw" "0.174619" "mamtueyrqn" "0.222798" "wiqhmhkiel" "0.704784" "cnngbbpowp" "0.837632" "curhymvwsx" "0.256654" "uttazeawix" "0.701426" "farwqgfyjf" "0.463106" "mivctgaajt" "0.534385" "qchpfcigwa" "0.538479" "lspvrnxnjo" "0.571538" "bzjzucrypq" "0.599488" "pyrpwxalpc" "0.924799" "rncdgqxqfq" "0.315947" "nenhiiibwx" "0.909998" "arqfxfqkzh" "0.405248" "fpdflprzvn" "0.674952" "cuuytorpnp" "0.955493" "lfojnetxdc" "0.692204" "uqbpcvkipa" "0.991647" "pribqncfuf" "0.597850" "xbvbujurqw" "0.498266" "expefhkisx" "0.231363" "wwowdvybjj" "0.357729" "qsoiwsugdv" "0.401551" "ntmgbzaivy" "0.230953" "kjblkrvknt" "0.707000" "xkaailrpns" "0.246097" "muocqqypmt" "0.720597" "dspznsgszk" "0.147380" "gkneclxnnt" "0.753306" "higdkhodzy" "0.003853" "csqcfxyzsy" "0.782493" "iyeiercbxr" "0.732835" "hjekcxfyds" "0.644764" "ahjawbsqcw" "0.038385" "kapxglqccs" "0.229066" "ygbfgfefac" "0.791507" "qpzkuxsipr" "0.991541" "kmqlwfbsex" "0.698087" "vwayaqmtid" "0.972772" "ghtoyhrfxh" "0.890508" "gcsswbksnc" "0.949597" "snpuvnebpy" "0.107435" "mugdxqnjxj" "0.618836" "vkqalcokst" "0.433195" "ltghdkluqq" "0.448407" "mumhqarhgg" "0.135863" "gbjzsedhag" "0.564412" "hvfprkjlbc" "0.228627" "jqgtbgbybq" "0.826784" "ydqppngxvh" "0.990663" "iamjlqlznh" "0.361827" "zzenkvuesw" "0.922425" "rmdayyptch" "0.150657" "ripecixnpr" "0.174850" "pkgpjwyfbh" "0.949969" "ortxlvmdoc" "0.857772" "rcaatkjyur" "0.649739" "qqfnugftmr" "0.332970" "bsavjyaksg" "0.801014" "pudgkcbwdx" "0.499720" "ynnhyctikq" "0.782441" "ekjgqnjxyl" "0.495010" "kbnjiilaqd" "0.186830" "cvmicoarvv" "0.439088" "iibgagtkpg" "0.715350" "jznackjcrd" "0.289687" "symbgeyple" "0.333963" "xlmvatfsly" "0.958199" "njmufqrykx" "0.541363" "nbizrabfuo" "0.933496" "amuwlfaxwv" "0.714080" "ahfktrqmgh" "0.100087" "kdodndexvr" "0.149844" "isqymcuffe" "0.706632" "yzmodbpsnb" "0.847058" "jlpobgvouj" "0.951551" "eqiukbyscu" "0.068236" "mqqrgbacfa" "0.490453" "mmqblvrscy" "0.235491" "fiugzrozky" "0.377347" "nvkfnfzoki" "0.127271" "vjihaakiof" "0.795512" "apyzwvajot" "0.348210" "lxsinouutc" "0.567777" "ystnkbogee" "0.477872" "oeawjlqnyg" "0.623260" "hyanpicfan" "0.664609" "gtqrsktbaa" "0.320234" "fffylsswky" "0.096201" "zdmgjjyukl" "0.421767" "ffcqkkzllx" "0.421724" "ogyvxbgcwi" "0.195373" "dtkfydidli" "0.127873" "jccorylnjg" "0.049319" "myzjxvtvjh" "0.808586" "dtuhvpszzt" "0.320150" "kamgfgbxel" "0.370480" "nraylduhut" "0.265837" "abinkgshoi" "0.975716" "ghqwxaqlef" "0.502953" "ftnbjymlll" "0.310925" "pzrchtwaaw" "0.567703" "wdqygrxkya" "0.728237" "snunzlgfkd" "0.896651" "nkyuframnm" "0.867424" "rxvhmzvbcv" "0.063563" "rrzcqyzdzf" "0.629553" "weqhfkosif" "0.462773" "ctgwmawlgl" "0.718046" "kpzmuwqbnt" "0.906977" "klaeknlbrm" "0.264978" "cejkfhuykf" "0.619446" "jhibapuhga" "0.061965" "wemmvswznk" "0.061592" "vdaebbupfe" "0.689222" "cglxptkcsz" "0.174769" "quemrlmwod" "0.898675" "ydigxptqbl" "0.948273" "gjutzwoxlf" "0.075856" "vefgwelnfo" "0.746864" "dcepfcdddn" "0.965491" "qkyfpamste" "0.633385" "gbkqhfumyu" "0.737572" "iwapedwyle" "0.754054" "ormdblyhhn" "0.932719" "dtjljhzqcm" "0.767225" "pthacnunjj" "0.649379" "xzswnnldvs" "0.216633" "muhewfzihs" "0.639269" "fuftndsnim" "0.909138" "xyxmlrdbui" "0.508704" "jwvqixjhho" "0.582770" "nfucelqjfe" "0.089356" "glynpmsjcf" "0.838816" "avchkjnlwm" "0.908984" "ylxiwiesps" "0.043408" "sadqcfniau" "0.886747" "qgdgujdvtg" "0.661810" "gfhrrjczsp" "0.907605" "dpauqcpgyi" "0.728562" "ppdxnadmje" "0.330399" "kqzjnkdlxd" "0.082110" "yhejmjwwni" "0.711500" "xsgcuvxzor" "0.866779" "fswhywqxhy" "0.421784" "rtnhivnxtb" "0.497701" "veegnotgmj" "0.518567" "tsmzfswaxo" "0.005142" "ifpfyncdfe" "0.249159" "vpqlxtfkjz" "0.741728" "twmbtaxdro" "0.139049" "cvnnitrrow" "0.070475" "erahoeivfw" "0.488547" "buzhjxsbkm" "0.741781" "nmtmjmhmdl" "0.514985" "fqtktfghcv" "0.866908" "iqzxblqkeo" "0.505662" "qydrgilxxt" "0.773945" "beicnwdryg" "0.668057" "htawohddyn" "0.675705" "jbqibabrmv" "0.784213" "aquymkrswt" "0.845563" "irrovfyshb" "0.239145" "outdlyeqvq" "0.083427" "ofcurtthcs" "0.865472" "xfxlervrgn" "0.410198" "myrrmvflyw" "0.757061" "lywsezpzgf" "0.634949" "jvtalmlkng" "0.435516" "ghwcrdlbjj" "0.228243" "rqkcyxiwhz" "0.337555" "gzekysdunp" "0.252513" "qtewhixedb" "0.767732" "bzfzxzecrs" "0.092367" "whsxmqffqg" "0.920685" "dmxcbvzrxg" "0.238809" "dhzgpwewsx" "0.569625" "flvftlpbjq" "0.681014" "wxswusqpeo" "0.558549" "aeafusfzdn" "0.076310" "gayysuldha" "0.343809" "nvqfyljbef" "0.131309" "ocgjeuljxf" "0.709863" "cnbqnvxmjp" "0.339533" "sotbjzlsvz" "0.818601" "cvbbbdzmie" "0.244589" "dpyjoihqrs" "0.924136" "ivinvxopgz" "0.004308" "zdulfflfqx" "0.113676" "iosqxoobrk" "0.009689" "kjeevccyof" "0.975034" "jigyicdeft" "0.351974" "sqwhsgboef" "0.575486" "bvurseeqmh" "0.701469" "lbxvlwzony" "0.108482" "tqqmmvwact" "0.639351" "keklddczkd" "0.361829" "kbfqdppnfa" "0.342636" "qjwrnhooax" "0.365558" "koujdppfua" "0.866551" "xrvonyieqa" "0.907022" "ccnbldglgl" "0.327711" "egmgddriry" "0.657241" "gfdzgxfdcg" "0.080151" "eirhwkdgfq" "0.599621" "adlryhdbpr" "0.645347" "ezbiwqnabg" "0.216803" "dplonqlliz" "0.436938" "aiqqyusnuv" "0.630922" "fmyleefltp" "0.387614" "mjgvtydjtm" "0.239791" "trwzipsers" "0.686253" "wvlvshnhmx" "0.710512" "nugjvhftma" "0.937218" "yafipxfsip" "0.887614" "shgetgsird" "0.730346" "cblsafugqk" "0.940470" "spdyueanru" "0.203652" "wjhaavxfge" "0.358953" "otadcihtmd" "0.428536" "irlduoinie" "0.203054" "asretszbav" "0.686840" "ekponflaeq" "0.116664" "btxehrokkw" "0.841981" "ctkwlhmgfz" "0.461922" "emfqsjraia" "0.729528" "ncremxgfdb" "0.747886" "dnvwyhyhsn" "0.314724" "gjiwldcfqh" "0.915762" "kluswgtjsf" "0.630900" "uvbtcgtopw" "0.734056" "jjczogqdwz" "0.954115" "iesbitdnjd" "0.922486" "glwrmjpotx" "0.330378" "nmfihtnkel" "0.752510" "tvzacklhdz" "0.826313" "xtwlklqdna" "0.190858" "rfhlttsuqy" "0.286279" "nlxwjmzwln" "0.334573" "vjjozwrovk" "0.266818" "gqybtjuhvq" "0.477130" "phfuspevwk" "0.424753" "vzcclamtun" "0.334857" "gbazuqnmit" "0.926985" "zmmwzkjrjl" "0.273126" "xigznrdgqy" "0.872996" "yufagalzhk" "0.973287" "kngwkkzwts" "0.642007" "fuipidfbjt" "0.640561" "rwzijctxzs" "0.547026" "fhobhpwwkp" "0.976843" "nqxdrqigvf" "0.889949" "zsikdzycyt" "0.955177" "inboyxgoqa" "0.570888" "rsivptwulz" "0.069483" "eqaxrccwjq" "0.476052" "cctlfgicpv" "0.950332" "gdozstnglr" "0.523253" "wovoupawzt" "0.396718" "nunchscyqc" "0.124266" "socoxaegfa" "0.847380" "qbpmtomqpu" "0.157463" "ngwifjdpha" "0.444848" "ztjuqomjck" "0.834028" "hrhiqcarju" "0.242287" "paitaeqrpb" "0.601139" "umoicweaab" "0.937897" "xekxarmwcq" "0.318636" "aejnvyfdst" "0.723443" "mlznoaajqq" "0.216821" "wjibkklezg" "0.418684" "jxiewthqls" "0.261108" "sldzewoxas" "0.123533" "fvemodlpgz" "0.541682" "fgzwwaedjy" "0.327706" "twpiiaedpc" "0.286415" "brrlblrxwa" "0.354345" "fojjpqmbck" "0.162167" "rhzqdtxucc" "0.553529" "fzsoiryhfn" "0.995917" "zavrjnezrf" "0.015279" "uxvibjduto" "0.179399" "puvgjfjyaf" "0.592098" "jybzltmwrs" "0.786701" "xftfzsoiwc" "0.632713" "kkrxiaiife" "0.023264" "nnfxoqebys" "0.639560" "wrqnytptzm" "0.931933" "powzkcrtvv" "0.102203" "gefoharnza" "0.893614" "viwarrumob" "0.548257" "pkcqdokojd" "0.804829" "kzuywkxlku" "0.252774" "iijjcabgak" "0.105055" "nxllkzroin" "0.261153" "uesalivsis" "0.153373" "aqlapmghln" "0.538430" "pfaytznuaa" "0.706254" "ucxeoqcssr" "0.506384" "tivnqailcl" "0.550096" "dtgjnddwch" "0.228131" "suahxaebee" "0.693047" "ubzgvzputq" "0.255977" "tqjpijliii" "0.320788" "mxapzqqqsw" "0.392916" "qvpuudyuks" "0.807373" "kprzbyngsw" "0.579009" "dflxukffgl" "0.639254" "xqvjnlpssl" "0.509891" "wvrlxfoxff" "0.079358" "tqpqihwjtl" "0.174471" "vxrtzngznb" "0.354177" "nahweurftw" "0.735534" "nehqnkqnld" "0.760483" "yfvwesgulw" "0.392384" "zejhycldyy" "0.545858" "cbtpbbfrdd" "0.509818" "oglqutqfcx" "0.171142" "jhctncrzlw" "0.366168" "wqsqzzbqhm" "0.547857" "mkbkflixkr" "0.503947" "nbkaxrojqq" "0.081083" "erqgyscser" "0.370359" "owovlhorvw" "0.309822" "rofnkytnhm" "0.231350" "yajpmxmuwz" "0.394314" "gviypfayfm" "0.784763" "ulnnuwyptq" "0.089208" "ddpgrvwowd" "0.572023" "bweysooxiv" "0.646567" "pnnzqcutoq" "0.839930" "tyephutkmb" "0.264179" "nszbrpweoz" "0.128647" "gehuriygwq" "0.659204" "vpehhmoxva" "0.491950" "dpkiubfzbx" "0.384848" "wgtmckqknh" "0.188043" "xeurpmfdmo" "0.418849" "nbwksmwxpx" "0.605004" "plbxaamppj" "0.276890" "nojnedgabk" "0.833175" "ygrpkpstxq" "0.297792" "etsngvbrff" "0.952694" "qzcrpbvatq" "0.474358" "qbhdjhoohc" "0.067502" "btcvhacldb" "0.014993" "osncqcuest" "0.409761" "uzktwqcdeb" "0.335957" "jttqzbazgz" "0.615791" "qmxxfyuodo" "0.802366" "zuibhuihtz" "0.431484" "ctqxoyxbwc" "0.405363" "azkdbpnshy" "0.590182" "qwozutlufu" "0.916406" "yqmzmmzwpd" "0.493531" "yivxcecwlp" "0.436352" "lzzptujbjp" "0.743434" "ewoqykjbkc" "0.132159" "zxlbhyeckf" "0.302988" "nswjopvtqv" "0.543728" "gkmwutvars" "0.228101" "mupcilqfjg" "0.585761" "skstqdgbos" "0.306041" "kjqeujfkoh" "0.441690" "pvwvdaorrl" "0.920910" "pmytvtksfi" "0.666617" "dniplpxfof" "0.512864" "twuvkpjzzw" "0.600784" "aufhfrhccf" "0.106240" "ljinllovsw" "0.889183" "ywgeotcect" "0.010523" "ltvfnuuwil" "0.081719" "nnnxouavyp" "0.369352" "tglieutcis" "0.790975" "wabroeeoop" "0.431765" "vsvhjrymqc" "0.033449" "jhdcicttmm" "0.334186" "dlhjfafskj" "0.311725" "ffksbrtbfq" "0.735770" "lcdchjadll" "0.402876" "ijdgnlzprg" "0.013454" "znartcywze" "0.320563" "agswwrfabr" "0.859299" "euleuicawb" "0.237979" "aoqlctikzg" "0.084421" "idmjjbjvni" "0.540346" "fkdmuxraqf" "0.827762" "vyewicgjio" "0.264901" "rzanpefsfy" "0.249106" "pubqtzzzko" "0.641931" "btakuczlec" "0.028675" "hfjxrrsszf" "0.112206" "dthtfrqkce" "0.881211" "vnsufnurol" "0.158854" "hmdzsuuyrn" "0.657811" "shckmujxzo" "0.823770" "fmmammvdyj" "0.794376" "fhuptkhkzm" "0.920863" "qquwyuyvvw" "0.237467" "tdggmsxysk" "0.382295" "ysnndkycix" "0.164685" "ftyxhyfokj" "0.924193" "dmbarohbfj" "0.985108" "mallnshtok" "0.932159" "cszvzbrmoy" "0.948943" "stnfirydgi" "0.243979" "bxwvqvndcc" "0.729360" "wtzqqecgfy" "0.827464" "mkngszsxeu" "0.066282" "ncckxlmsvg" "0.832378" "pdjmftsmob" "0.546000" "vqgztpmzhz" "0.880249" "vvmaucizkv" "0.529144" "fnpdsuozxt" "0.599864" "gritvkzfgw" "0.575660" "wtcpliaxmk" "0.095307" "cqfnhujrbj" "0.428143" "osaekeukqx" "0.988758" "nepxmyiuhr" "0.438792" "lfkqrtxocm" "0.337112" "pgdhjrxhga" "0.029529" "wcpbfslakk" "0.817147" "cynhehkcxs" "0.796564" "trzqdcaqdw" "0.292661" "mxydilgynv" "0.296909" "lscjhgztom" "0.658885" "rqurawzebz" "0.291664" "pghbwbtfmk" "0.176822" "ckibsdtfff" "0.884684" "svvdufedug" "0.806829" "fjdjumschq" "0.960759" "ybcdthmgws" "0.806253" "ogtqmpnzie" "0.749828" "yjyffpgoop" "0.313174" "uwiqrvcqvu" "0.978051" "xepfvvcovk" "0.935539" "oxsdmrdbit" "0.949876" "rfxibyjmpg" "0.527448" "gwzqcetcji" "0.136049" "mkxysrkpug" "0.207709" "jjumoixniz" "0.302963" "pypepewjvq" "0.097174" "gcfcbjybkx" "0.982914" "ezgxjiwwig" "0.643767" "kjiqagynco" "0.789879" "urkkyscfti" "0.345265" "tsnawydcru" "0.657757" "sshbuxfljd" "0.849243" "fazsvkljef" "0.122817" "jfqxkxgqhj" "0.874860" "qxbqbfcgjp" "0.019772" "joijmgposs" "0.396742" "qocjpufxio" "0.317664" "xpkwqbfban" "0.417027" "saqilljaid" "0.436455" "qlvgfplbod" "0.689103" "aoydkdfrpe" "0.151562" "dxpepbctea" "0.004086" "jqurtadjro" "0.275095" "szupcnvvij" "0.975388" "nunpqugdit" "0.619831" "cmqraybrlw" "0.021593" "bnatichltp" "0.615263" "zuoqjiciij" "0.516554" "suhwnartid" "0.500129" "bhfmhanvxe" "0.970410" "qckueiqiwh" "0.310292" "hmwfncgzxg" "0.136794" "bhrvnadcdk" "0.537331" "bwjyghaztz" "0.845703" "hwuofuftlr" "0.062857" "xzbqjpzqlm" "0.148334" "rhkpfsuhoq" "0.903658" "ywlqbjqeug" "0.171792" "haxesjafmh" "0.607711" "ouroipthpq" "0.213063" "kdklhpxntt" "0.566853" "mhrvuemywb" "0.066576" "cpjveufsvk" "0.575035" "mszjkgsrio" "0.883155" "rtskokvklv" "0.326063" "kdcvbkrbsj" "0.497748" "pbfijwccjp" "0.096181" "gsvkmnluiz" "0.651896" "brwlqbfoat" "0.698481" "wzxdkpehwf" "0.241647" "hhbceuegvh" "0.335103" "ubwlcefgqb" "0.139593" "vlhtdpqavh" "0.043865" "wghyakzbit" "0.232605" "adfhfatarh" "0.280517" "wevfinjbqk" "0.240397" "scgjdkyetq" "0.661665" "ymwwctfodg" "0.406742" "sotsxznskx" "0.651442" "ckqebhazel" "0.954087" "dwzqowbrsd" "0.118853" "dclualrzqb" "0.859469" "ifiizdeong" "0.715490" "etcsjxoqab" "0.365077" "igehetokzq" "0.303267" "tuajnnqtcq" "0.187568" "mxpzuzrzuo" "0.447848" "oqmuhlruqy" "0.385352" "hvtlkrungk" "0.055211" "dygkzcpakt" "0.403664" "rnlaakgsrf" "0.314530" "yoblelzlkd" "0.082484" "mwmcwqzbld" "0.916300" "mgldvzleyy" "0.169185" "ahcaaodvgi" "0.972997" "erglflfnql" "0.188418" "behdxlfdho" "0.605785" "ikpikupjoi" "0.348162" "ylulwsnjay" "0.512359" "qcsxjrjcfc" "0.376004" "ollacusjzj" "0.312060" "ethxaycsil" "0.912136" "laepwenqmc" "0.629227" "eksvvoxziw" "0.473402" "ulepgommyy" "0.112999" "efhynoxlul" "0.141312" "vhjaphfdpj" "0.501631" "otclvmbilg" "0.622360" "ndltyojjxj" "0.560323" "ehnrizfmfo" "0.856890" "tqkprkoixe" "0.295874" "cvohdragtx" "0.144378" "emfjcnujqn" "0.013908" "bzursuzuei" "0.765880" "qmnxipsiga" "0.655198" "dxnprfawun" "0.921417" "umttshfkpk" "0.269042" "nrbfkysxaf" "0.426194" "xjksnqifds" "0.009747" "qatkvfuttq" "0.222498" "bqqohkuylc" "0.487539" "thmmmlqluk" "0.447940" "gnrmnwaxls" "0.757365" "usykkwszvh" "0.127757" "nnhrgirrtw" "0.114722" "sujbwndgwl" "0.320579" "pkvcbelpos" "0.028885" "fussukqrph" "0.898756" "bgtxhxkhvv" "0.440242" "ywiurvfbpg" "0.195203" "rakustfykw" "0.455870" "txhllnvudv" "0.038326" "smwbxeqbed" "0.636364" "rdsfcdvkqz" "0.602638" "nknlysgviv" "0.703795" "yzviqaobku" "0.517737" "rngtndwjyg" "0.896203" "jqmscuprwq" "0.758854" "bcwncpnibg" "0.497263" "rwrxxrnwtq" "0.810537" "fpmbbgiaao" "0.816854" "mshexjmkmn" "0.132051" "rhzpguhsws" "0.319074" "krxneqolle" "0.336648" "dozecfsvue" "0.607888" "jbzyfznpdn" "0.971581" "tjnbsybxws" "0.261454" "vpzsmbjkvy" "0.581137" "dewdgfrhos" "0.680898" "gcjruttnno" "0.999251" "uzaejrbwue" "0.158681" "jvekvvldai" "0.606900" "imexfccbxk" "0.986671" "exhjfssojj" "0.999539" "hjjxyybxiv" "0.548141" "mjifqzmtsd" "0.838391" "tbqidtevrl" "0.812230" "hjlhurakwh" "0.308053" "ughnpilqqm" "0.047394" "kfselnpkim" "0.852908" "vewfxcxkpf" "0.201866" "usjmfkopln" "0.126260" "yxsnreuepl" "0.246804" "flrsaczxzc" "0.835412" "aadzbodres" "0.293504" "bhwytqsafu" "0.708503" "lpahctqgna" "0.045136" "zwlhpcahwu" "0.601683" "kgirldeylz" "0.556444" "krtsiucvvu" "0.595704" "adlxahxsbq" "0.191964" "alokvrpbih" "0.572409" "mmcunsiwad" "0.551146" "dfdodbelzn" "0.441988" "ejlunxlwxn" "0.419999" "tlnkrncpwi" "0.037276" "jhocasnttw" "0.132050" "qslrwqmixc" "0.767421" "afamsavgsi" "0.697485" "ramoirrdyd" "0.245522" "hplvvuoscb" "0.506283" "dxufcyurjx" "0.614086" "dablvesuho" "0.085394" "ovqohpxjft" "0.343138" "qclkaeciey" "0.148648" "dgodkfjzos" "0.740439" "iobkwbwceu" "0.829028" "ocmtsfpsgh" "0.472991" "ubtiscdgrn" "0.349979" "fsoardckcw" "0.094781" "sstqpivwip" "0.846751" "wzuhzzdezi" "0.746618" "tmyuncyoyd" "0.338101" "ygoiannoht" "0.538581" "zkbqvttlzy" "0.306575" "bwizktcwmb" "0.560909" "dcjlwhfstw" "0.075409" "pheajlhymx" "0.142967" "ysntbzffxq" "0.385727" "rgtondctpo" "0.825053" "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' + - '"ZADD" "zset:1000" "0.645108" "iehxaaneev" "0.793870" "icatrrbcjs" "0.558445" + "aieekmivcb" "0.712596" "xwtwtwmbgu" "0.138467" "ctnaggdbru" "0.319593" "nouncgkoik" + "0.193744" "naggqdxcjm" "0.238679" "qjrhtqgwjc" "0.308197" "ihealvwnxb" "0.903443" + "hggqmlgwha" "0.210797" "pjdundsxrd" "0.706360" "zcffhzusrl" "0.392186" "hmcpcrjumm" + "0.392543" "iiissmznfe" "0.024854" "caaqjozcqh" "0.169284" "ooeswhfdnj" "0.545674" + "txgjxzovte" "0.943467" "xpcpytommm" "0.130763" "icqjxcermo" "0.167315" "vqtixjkcbb" + "0.629596" "wwfbpjatrp" "0.413113" "vtaiyncmyg" "0.457128" "aslibwggrp" "0.105554" + "bpvbnmpekh" "0.771857" "gaotvjctjh" "0.306570" "diwmfuckel" "0.939014" "dgcesswkvc" + "0.905870" "cflarkquuv" "0.063393" "lqqivzlppd" "0.582370" "iwqanwtvcd" "0.031539" + "nvonwipkta" "0.720765" "rcwbzvwbva" "0.315533" "sbrjnwxdip" "0.688803" "kuiumwomxi" + "0.890704" "qgobfhgspy" "0.334490" "wmvhvwnowp" "0.673452" "uewpgskfpu" "0.819089" + "cvnlzjdfgf" "0.846270" "mhbfsuaovv" "0.652710" "anmcogawkg" "0.778304" "xsueeljljp" + "0.771838" "padscbypdo" "0.177771" "tjnjhejnju" "0.793709" "dxdngrmypg" "0.799628" + "itmekixthv" "0.017343" "giubyhvaav" "0.004991" "bbfvuialin" "0.580003" "tctgzmjads" + "0.405932" "mvfnirshbd" "0.851340" "asbtvfzien" "0.226860" "vqashxkrik" "0.391362" + "gazojexans" "0.287772" "wybmlpqblt" "0.191989" "mobwpcyxuk" "0.224179" "sjbaedopjb" + "0.202665" "axhoxkubdv" "0.968856" "rqiyxwpuyv" "0.483072" "jpphbjtbrh" "0.991346" + "mvmsikqfxu" "0.350243" "ltkauvxggz" "0.588627" "rwllkdzxrj" "0.039496" "hhwvslfxmf" + "0.700638" "cgpvvnbvlk" "0.313291" "fgcehqgsso" "0.343576" "oownjpxrov" "0.192722" + "umwunfzsvo" "0.273418" "jzceexkqam" "0.968219" "arqqmfmmbz" "0.394788" "plqbwsiuzw" + "0.378863" "rhnkzlsjtk" "0.605956" "eioxaswdee" "0.438622" "rspghuhpbp" "0.356931" + "zexblqeora" "0.009694" "stttkrbfqs" "0.620955" "rmqxtqcxua" "0.713440" "emdwpvauyc" + "0.999344" "olezxlliej" "0.361739" "imnjbkmsls" "0.308247" "thqttakyzy" "0.424859" + "jjlefkekuw" "0.036802" "qgasrnjrld" "0.160174" "whdftyqojv" "0.725586" "snepgcispg" + "0.004061" "ipubipttcb" "0.702881" "ocesqguvym" "0.206341" "qwxzqlqter" "0.831086" + "xmknbbmdbf" "0.353833" "spoqshzjoi" "0.029532" "slskrnekbc" "0.389068" "gybxnvwchp" + "0.520218" "uvlswctlhx" "0.872011" "ujybghjfnf" "0.299529" "lgqazzajpx" "0.153536" + "yhlalzusch" "0.611873" "jeazfmhrcb" "0.795973" "vealtjlqyc" "0.284121" "ejzwnidqwr" + "0.429848" "nifzrybfuh" "0.133500" "qlorevyltp" "0.870113" "wvdmobfisx" "0.240635" + "aqyfvxyjqr" "0.903983" "zybosgbtxt" "0.305875" "bvvoibkfrt" "0.132423" "iziwqojsoq" + "0.041522" "qpffifpdiz" "0.085682" "ocoflktdhp" "0.159059" "ncabqesziv" "0.650525" + "zuccleayil" "0.354068" "pfvfxrrfhl" "0.546089" "rdipvyeqoi" "0.452595" "yrsizkbbwz" + "0.723931" "iwuuxdactm" "0.595940" "mbewprqunw" "0.933906" "ajdkqflpen" "0.696150" + "wmyphdckda" "0.841744" "lxoaezrdxs" "0.461889" "jqqogagqni" "0.141414" "yhdgqenmwv" + "0.347382" "wrrgxxkxkc" "0.398727" "omwbgglqsp" "0.443000" "ymqxhmnidz" "0.765094" + "nqwjivcosg" "0.986056" "tctrsxgnrc" "0.576107" "ndwiompimr" "0.349571" "cmhkstsjok" + "0.734824" "jfbgmhtjke" "0.929214" "gdlztbhpeq" "0.102103" "kmifjielrw" "0.796464" + "khkkfmzkow" "0.044303" "akzsgaeqon" "0.349244" "ozpyyaznsh" "0.282090" "dvgqwzignk" + "0.124180" "lawrpikwsk" "0.145508" "qnqzibcmip" "0.014177" "jlghqxtvok" "0.271586" + "orqqevpmca" "0.941327" "yrvmdhnnfc" "0.964838" "ajkgxmtamu" "0.681722" "mcbuftndrr" + "0.524113" "caxgjftjyj" "0.432128" "bzwxqcpftf" "0.167489" "krfosgrmjb" "0.309948" + "ilkuddrdvh" "0.910226" "byrkeibrfb" "0.382510" "bpnfopinub" "0.152318" "gbeizdzdyb" + "0.570025" "vgfgbsbnwy" "0.290087" "zbfeyptemz" "0.376504" "wcouaiatsu" "0.071776" + "omeatkwwtc" "0.029506" "cbjovvgqqy" "0.484980" "ofykgotycd" "0.043870" "bnxtlmiwup" + "0.751689" "uqvzpcvugl" "0.419781" "rwfykeeqgx" "0.087991" "nubsytpfao" "0.808363" + "xeyxlxiqch" "0.187833" "rrrfhnclbv" "0.864568" "mnsaklzgob" "0.725490" "zujobawsct" + "0.204763" "pcuaesomdc" "0.223025" "lftmqoxhfc" "0.506344" "fgygwdazbm" "0.261202" + "maxylirjgh" "0.410370" "jgaieawkcu" "0.260167" "ffrviosqzo" "0.250480" "fiafoggekm" + "0.563103" "wksgvbkbyw" "0.974324" "nmguhcygct" "0.259207" "bekchebgys" "0.783447" + "hmnaoeeasz" "0.764739" "zknlteeaxq" "0.828842" "qzxxwlfeki" "0.464344" "knycrcrsbm" + "0.984059" "izizuzzjuv" "0.384700" "blujwnyluy" "0.930637" "zrwgpknaop" "0.656346" + "fffreqppjj" "0.051069" "alfftdxaxc" "0.320961" "ywmqoaztmy" "0.279848" "lbjarnpxhh" + "0.294326" "ecsburyjhh" "0.806331" "jetamrlglx" "0.208517" "ruxsmttpak" "0.257535" + "hxbmykkugi" "0.821400" "jzstgleeby" "0.546144" "bovkdabcdo" "0.226768" "jhkdwtqvwl" + "0.398483" "iqbyikqjmx" "0.125020" "snomfrutha" "0.264133" "eiziligjfr" "0.043614" + "bqoabrqwwj" "0.411120" "utymwhxigo" "0.850358" "bstezdkmig" "0.485876" "csjfbpjyzq" + "0.528742" "yzrdbalexf" "0.110554" "uidvmrqyjd" "0.751337" "yjhypaonqq" "0.074346" + "gktcjcfxbb" "0.020820" "lqxpnplleo" "0.234692" "vfcpevtekf" "0.157122" "xglrugpjkt" + "0.174485" "fidsuuizcf" "0.939223" "gdqgmwxkmt" "0.436623" "ghepftfjgk" "0.071851" + "mjwrbndexu" "0.847464" "shlwywnxpk" "0.646937" "wlogkzxkpo" "0.532516" "pwgjoppmgc" + "0.592209" "ossjrvqmaa" "0.598701" "rnvhfxbuoi" "0.443002" "lydebbpmfb" "0.279549" + "sdnkjddyut" "0.877963" "zewylkylsy" "0.080681" "rnfodijavx" "0.696470" "ukdnaklmcp" + "0.102279" "tcpwkimype" "0.881048" "bgcoyoduda" "0.415925" "gpodilvrnm" "0.848481" + "srkvjhetmj" "0.040637" "ltgidziwzm" "0.244640" "tnratexlre" "0.075067" "tfonhwnuxj" + "0.034629" "rpyroriegs" "0.887395" "rjrtvpntke" "0.685654" "vvmkjgajwa" "0.400525" + "nywteueaig" "0.435228" "vklwhyzqhk" "0.060039" "afzlyodwiz" "0.510563" "ropuqidkxv" + "0.048751" "roczxpuisd" "0.269116" "mhxojehvxx" "0.988874" "dqqfcdugde" "0.240165" + "qtpcwuafar" "0.750459" "uvqtefqdhk" "0.828087" "tstbluhyhj" "0.861661" "kxggjpatkd" + "0.351980" "wgtjxahmef" "0.440586" "tdceweesxh" "0.897607" "qzlfnntjar" "0.564519" + "ljklggibcy" "0.372248" "nwnyjkugcf" "0.098880" "qmhyoyctod" "0.545321" "bwsdzrxzse" + "0.996184" "kmcwshsbye" "0.819622" "ifhkjgmxrd" "0.034752" "lnuuootxmp" "0.243929" + "yfdsmhtria" "0.317712" "pupmdjgyed" "0.706819" "aryiyaltqw" "0.755626" "eyhgspybnr" + "0.066966" "babfjxxabw" "0.681568" "qhhhipzncq" "0.289070" "rwhzzytdsq" "0.040067" + "rbdabbmnrf" "0.325428" "sfuvzzxbxq" "0.377881" "fgjnsosfrp" "0.737437" "llimzyabsp" + "0.035594" "ufdxqlonpg" "0.343033" "mjlpvuoghe" "0.189450" "dyzedskzkq" "0.671180" + "dbcxnsiacw" "0.679152" "fsuovvpgng" "0.919742" "tvlckdoyfe" "0.191694" "pkehotsmka" + "0.219460" "nryvfijxhj" "0.188159" "yqvkykgjbe" "0.564495" "jlgepeyhpc" "0.238642" + "nwywtydqew" "0.751883" "cakvxrdpmj" "0.894821" "eaetplspga" "0.630431" "lrhrkuyzry" + "0.358602" "ksppwhhqzj" "0.489667" "skkawcmqqt" "0.778531" "mkrrypcfzy" "0.101774" + "tkgihmsrha" "0.268255" "oqdlpaubsc" "0.577108" "mdcwoblmkl" "0.260332" "rjrptuhkav" + "0.516929" "wvsnfinuil" "0.941773" "aexxjlgwuo" "0.196086" "kohpozxkhl" "0.137598" + "qxxinxaqxn" "0.378124" "pltsnzqvpi" "0.579231" "mcojdazpfq" "0.240701" "xkvgnzjgrm" + "0.898586" "fzzcioobeb" "0.264136" "tqblforkpa" "0.448451" "skbzfbeziu" "0.051773" + "vyiqkfoics" "0.536133" "lxzdcbveuy" "0.502064" "hskkmrluuf" "0.698222" "ltomuspfzc" + "0.590610" "fmpdixcckx" "0.057498" "ukprrucywq" "0.660543" "vldwfdnicm" "0.826104" + "fzatoyblsr" "0.754438" "wbouqpojzl" "0.117783" "pmaagvqldo" "0.533611" "wxjdgbugeu" + "0.025197" "nlqtadqinl" "0.760125" "jgcqryhsvk" "0.551085" "uboipezuni" "0.203084" + "tmkoxwdgpx" "0.415950" "xgfzndhodu" "0.271285" "vuqlqdpfdn" "0.385063" "zorzyqtjtr" + "0.537420" "uedehyieof" "0.972732" "jphvxuqipp" "0.733064" "faxedqgskm" "0.342786" + "cdghgcsoth" "0.903818" "qwowxqzrkz" "0.653952" "roqzbzpbbt" "0.768345" "sxcihybfci" + "0.892237" "pbxrbaxnor" "0.764531" "geizujxrkg" "0.620438" "beqsnrixhl" "0.521196" + "llamjvxyqo" "0.699100" "yzcspfvcot" "0.459957" "ubghghklvj" "0.297416" "giswndixdf" + "0.086339" "kgopxvsdah" "0.000782" "tocawprsxz" "0.426201" "ctusqixohm" "0.339036" + "hklchdenoe" "0.276883" "btgeubdzbb" "0.860669" "cjcrpmggtu" "0.147353" "ngcxqjjpdm" + "0.875443" "vorgqhmaoq" "0.923510" "bgcnzgcmza" "0.087182" "pyjpxqnavq" "0.634058" + "tdmjyuitvv" "0.963838" "igwekdegcw" "0.235680" "spogjykkfs" "0.675610" "vlcnbfqvox" + "0.661566" "tzhjrlfvfp" "0.317132" "ebhhhgabjd" "0.118838" "evuxmkrrfl" "0.246357" + "pxzkuasjek" "0.450004" "hnnfmyurhx" "0.623882" "yzutuazhmh" "0.331435" "eovsizpcjp" + "0.218206" "dfemamyevk" "0.935043" "evjrybtwww" "0.820919" "audguegpmo" "0.966038" + "nwybjbhgep" "0.748183" "nrencopzqn" "0.287079" "hyikggurti" "0.375950" "xwxwosqkhm" + "0.388941" "kcbotffyca" "0.676492" "xhspgwheck" "0.782514" "rkwlgzhvvy" "0.628528" + "tumnalubch" "0.672107" "dhfundvlpn" "0.661732" "qsxfnsicrx" "0.975140" "gamcdtywne" + "0.608014" "asidljmwgb" "0.897256" "gygftrsdbm" "0.349942" "ybckvbeoib" "0.932954" + "anznywecwk" "0.726428" "cgmivhyskk" "0.843359" "xkiuuciwrn" "0.023708" "lyhqvxolfw" + "0.822799" "eafrzhdhhq" "0.530864" "dbtbtvkqss" "0.848648" "hvxefqtmqu" "0.866428" + "eraxdyjftw" "0.446144" "eyrbqexkff" "0.048181" "dxtzxeguoi" "0.683328" "owjfgjqqjc" + "0.489625" "pisgqibyae" "0.970240" "nsdvirehqh" "0.583183" "wgtrwefdsw" "0.174619" + "mamtueyrqn" "0.222798" "wiqhmhkiel" "0.704784" "cnngbbpowp" "0.837632" "curhymvwsx" + "0.256654" "uttazeawix" "0.701426" "farwqgfyjf" "0.463106" "mivctgaajt" "0.534385" + "qchpfcigwa" "0.538479" "lspvrnxnjo" "0.571538" "bzjzucrypq" "0.599488" "pyrpwxalpc" + "0.924799" "rncdgqxqfq" "0.315947" "nenhiiibwx" "0.909998" "arqfxfqkzh" "0.405248" + "fpdflprzvn" "0.674952" "cuuytorpnp" "0.955493" "lfojnetxdc" "0.692204" "uqbpcvkipa" + "0.991647" "pribqncfuf" "0.597850" "xbvbujurqw" "0.498266" "expefhkisx" "0.231363" + "wwowdvybjj" "0.357729" "qsoiwsugdv" "0.401551" "ntmgbzaivy" "0.230953" "kjblkrvknt" + "0.707000" "xkaailrpns" "0.246097" "muocqqypmt" "0.720597" "dspznsgszk" "0.147380" + "gkneclxnnt" "0.753306" "higdkhodzy" "0.003853" "csqcfxyzsy" "0.782493" "iyeiercbxr" + "0.732835" "hjekcxfyds" "0.644764" "ahjawbsqcw" "0.038385" "kapxglqccs" "0.229066" + "ygbfgfefac" "0.791507" "qpzkuxsipr" "0.991541" "kmqlwfbsex" "0.698087" "vwayaqmtid" + "0.972772" "ghtoyhrfxh" "0.890508" "gcsswbksnc" "0.949597" "snpuvnebpy" "0.107435" + "mugdxqnjxj" "0.618836" "vkqalcokst" "0.433195" "ltghdkluqq" "0.448407" "mumhqarhgg" + "0.135863" "gbjzsedhag" "0.564412" "hvfprkjlbc" "0.228627" "jqgtbgbybq" "0.826784" + "ydqppngxvh" "0.990663" "iamjlqlznh" "0.361827" "zzenkvuesw" "0.922425" "rmdayyptch" + "0.150657" "ripecixnpr" "0.174850" "pkgpjwyfbh" "0.949969" "ortxlvmdoc" "0.857772" + "rcaatkjyur" "0.649739" "qqfnugftmr" "0.332970" "bsavjyaksg" "0.801014" "pudgkcbwdx" + "0.499720" "ynnhyctikq" "0.782441" "ekjgqnjxyl" "0.495010" "kbnjiilaqd" "0.186830" + "cvmicoarvv" "0.439088" "iibgagtkpg" "0.715350" "jznackjcrd" "0.289687" "symbgeyple" + "0.333963" "xlmvatfsly" "0.958199" "njmufqrykx" "0.541363" "nbizrabfuo" "0.933496" + "amuwlfaxwv" "0.714080" "ahfktrqmgh" "0.100087" "kdodndexvr" "0.149844" "isqymcuffe" + "0.706632" "yzmodbpsnb" "0.847058" "jlpobgvouj" "0.951551" "eqiukbyscu" "0.068236" + "mqqrgbacfa" "0.490453" "mmqblvrscy" "0.235491" "fiugzrozky" "0.377347" "nvkfnfzoki" + "0.127271" "vjihaakiof" "0.795512" "apyzwvajot" "0.348210" "lxsinouutc" "0.567777" + "ystnkbogee" "0.477872" "oeawjlqnyg" "0.623260" "hyanpicfan" "0.664609" "gtqrsktbaa" + "0.320234" "fffylsswky" "0.096201" "zdmgjjyukl" "0.421767" "ffcqkkzllx" "0.421724" + "ogyvxbgcwi" "0.195373" "dtkfydidli" "0.127873" "jccorylnjg" "0.049319" "myzjxvtvjh" + "0.808586" "dtuhvpszzt" "0.320150" "kamgfgbxel" "0.370480" "nraylduhut" "0.265837" + "abinkgshoi" "0.975716" "ghqwxaqlef" "0.502953" "ftnbjymlll" "0.310925" "pzrchtwaaw" + "0.567703" "wdqygrxkya" "0.728237" "snunzlgfkd" "0.896651" "nkyuframnm" "0.867424" + "rxvhmzvbcv" "0.063563" "rrzcqyzdzf" "0.629553" "weqhfkosif" "0.462773" "ctgwmawlgl" + "0.718046" "kpzmuwqbnt" "0.906977" "klaeknlbrm" "0.264978" "cejkfhuykf" "0.619446" + "jhibapuhga" "0.061965" "wemmvswznk" "0.061592" "vdaebbupfe" "0.689222" "cglxptkcsz" + "0.174769" "quemrlmwod" "0.898675" "ydigxptqbl" "0.948273" "gjutzwoxlf" "0.075856" + "vefgwelnfo" "0.746864" "dcepfcdddn" "0.965491" "qkyfpamste" "0.633385" "gbkqhfumyu" + "0.737572" "iwapedwyle" "0.754054" "ormdblyhhn" "0.932719" "dtjljhzqcm" "0.767225" + "pthacnunjj" "0.649379" "xzswnnldvs" "0.216633" "muhewfzihs" "0.639269" "fuftndsnim" + "0.909138" "xyxmlrdbui" "0.508704" "jwvqixjhho" "0.582770" "nfucelqjfe" "0.089356" + "glynpmsjcf" "0.838816" "avchkjnlwm" "0.908984" "ylxiwiesps" "0.043408" "sadqcfniau" + "0.886747" "qgdgujdvtg" "0.661810" "gfhrrjczsp" "0.907605" "dpauqcpgyi" "0.728562" + "ppdxnadmje" "0.330399" "kqzjnkdlxd" "0.082110" "yhejmjwwni" "0.711500" "xsgcuvxzor" + "0.866779" "fswhywqxhy" "0.421784" "rtnhivnxtb" "0.497701" "veegnotgmj" "0.518567" + "tsmzfswaxo" "0.005142" "ifpfyncdfe" "0.249159" "vpqlxtfkjz" "0.741728" "twmbtaxdro" + "0.139049" "cvnnitrrow" "0.070475" "erahoeivfw" "0.488547" "buzhjxsbkm" "0.741781" + "nmtmjmhmdl" "0.514985" "fqtktfghcv" "0.866908" "iqzxblqkeo" "0.505662" "qydrgilxxt" + "0.773945" "beicnwdryg" "0.668057" "htawohddyn" "0.675705" "jbqibabrmv" "0.784213" + "aquymkrswt" "0.845563" "irrovfyshb" "0.239145" "outdlyeqvq" "0.083427" "ofcurtthcs" + "0.865472" "xfxlervrgn" "0.410198" "myrrmvflyw" "0.757061" "lywsezpzgf" "0.634949" + "jvtalmlkng" "0.435516" "ghwcrdlbjj" "0.228243" "rqkcyxiwhz" "0.337555" "gzekysdunp" + "0.252513" "qtewhixedb" "0.767732" "bzfzxzecrs" "0.092367" "whsxmqffqg" "0.920685" + "dmxcbvzrxg" "0.238809" "dhzgpwewsx" "0.569625" "flvftlpbjq" "0.681014" "wxswusqpeo" + "0.558549" "aeafusfzdn" "0.076310" "gayysuldha" "0.343809" "nvqfyljbef" "0.131309" + "ocgjeuljxf" "0.709863" "cnbqnvxmjp" "0.339533" "sotbjzlsvz" "0.818601" "cvbbbdzmie" + "0.244589" "dpyjoihqrs" "0.924136" "ivinvxopgz" "0.004308" "zdulfflfqx" "0.113676" + "iosqxoobrk" "0.009689" "kjeevccyof" "0.975034" "jigyicdeft" "0.351974" "sqwhsgboef" + "0.575486" "bvurseeqmh" "0.701469" "lbxvlwzony" "0.108482" "tqqmmvwact" "0.639351" + "keklddczkd" "0.361829" "kbfqdppnfa" "0.342636" "qjwrnhooax" "0.365558" "koujdppfua" + "0.866551" "xrvonyieqa" "0.907022" "ccnbldglgl" "0.327711" "egmgddriry" "0.657241" + "gfdzgxfdcg" "0.080151" "eirhwkdgfq" "0.599621" "adlryhdbpr" "0.645347" "ezbiwqnabg" + "0.216803" "dplonqlliz" "0.436938" "aiqqyusnuv" "0.630922" "fmyleefltp" "0.387614" + "mjgvtydjtm" "0.239791" "trwzipsers" "0.686253" "wvlvshnhmx" "0.710512" "nugjvhftma" + "0.937218" "yafipxfsip" "0.887614" "shgetgsird" "0.730346" "cblsafugqk" "0.940470" + "spdyueanru" "0.203652" "wjhaavxfge" "0.358953" "otadcihtmd" "0.428536" "irlduoinie" + "0.203054" "asretszbav" "0.686840" "ekponflaeq" "0.116664" "btxehrokkw" "0.841981" + "ctkwlhmgfz" "0.461922" "emfqsjraia" "0.729528" "ncremxgfdb" "0.747886" "dnvwyhyhsn" + "0.314724" "gjiwldcfqh" "0.915762" "kluswgtjsf" "0.630900" "uvbtcgtopw" "0.734056" + "jjczogqdwz" "0.954115" "iesbitdnjd" "0.922486" "glwrmjpotx" "0.330378" "nmfihtnkel" + "0.752510" "tvzacklhdz" "0.826313" "xtwlklqdna" "0.190858" "rfhlttsuqy" "0.286279" + "nlxwjmzwln" "0.334573" "vjjozwrovk" "0.266818" "gqybtjuhvq" "0.477130" "phfuspevwk" + "0.424753" "vzcclamtun" "0.334857" "gbazuqnmit" "0.926985" "zmmwzkjrjl" "0.273126" + "xigznrdgqy" "0.872996" "yufagalzhk" "0.973287" "kngwkkzwts" "0.642007" "fuipidfbjt" + "0.640561" "rwzijctxzs" "0.547026" "fhobhpwwkp" "0.976843" "nqxdrqigvf" "0.889949" + "zsikdzycyt" "0.955177" "inboyxgoqa" "0.570888" "rsivptwulz" "0.069483" "eqaxrccwjq" + "0.476052" "cctlfgicpv" "0.950332" "gdozstnglr" "0.523253" "wovoupawzt" "0.396718" + "nunchscyqc" "0.124266" "socoxaegfa" "0.847380" "qbpmtomqpu" "0.157463" "ngwifjdpha" + "0.444848" "ztjuqomjck" "0.834028" "hrhiqcarju" "0.242287" "paitaeqrpb" "0.601139" + "umoicweaab" "0.937897" "xekxarmwcq" "0.318636" "aejnvyfdst" "0.723443" "mlznoaajqq" + "0.216821" "wjibkklezg" "0.418684" "jxiewthqls" "0.261108" "sldzewoxas" "0.123533" + "fvemodlpgz" "0.541682" "fgzwwaedjy" "0.327706" "twpiiaedpc" "0.286415" "brrlblrxwa" + "0.354345" "fojjpqmbck" "0.162167" "rhzqdtxucc" "0.553529" "fzsoiryhfn" "0.995917" + "zavrjnezrf" "0.015279" "uxvibjduto" "0.179399" "puvgjfjyaf" "0.592098" "jybzltmwrs" + "0.786701" "xftfzsoiwc" "0.632713" "kkrxiaiife" "0.023264" "nnfxoqebys" "0.639560" + "wrqnytptzm" "0.931933" "powzkcrtvv" "0.102203" "gefoharnza" "0.893614" "viwarrumob" + "0.548257" "pkcqdokojd" "0.804829" "kzuywkxlku" "0.252774" "iijjcabgak" "0.105055" + "nxllkzroin" "0.261153" "uesalivsis" "0.153373" "aqlapmghln" "0.538430" "pfaytznuaa" + "0.706254" "ucxeoqcssr" "0.506384" "tivnqailcl" "0.550096" "dtgjnddwch" "0.228131" + "suahxaebee" "0.693047" "ubzgvzputq" "0.255977" "tqjpijliii" "0.320788" "mxapzqqqsw" + "0.392916" "qvpuudyuks" "0.807373" "kprzbyngsw" "0.579009" "dflxukffgl" "0.639254" + "xqvjnlpssl" "0.509891" "wvrlxfoxff" "0.079358" "tqpqihwjtl" "0.174471" "vxrtzngznb" + "0.354177" "nahweurftw" "0.735534" "nehqnkqnld" "0.760483" "yfvwesgulw" "0.392384" + "zejhycldyy" "0.545858" "cbtpbbfrdd" "0.509818" "oglqutqfcx" "0.171142" "jhctncrzlw" + "0.366168" "wqsqzzbqhm" "0.547857" "mkbkflixkr" "0.503947" "nbkaxrojqq" "0.081083" + "erqgyscser" "0.370359" "owovlhorvw" "0.309822" "rofnkytnhm" "0.231350" "yajpmxmuwz" + "0.394314" "gviypfayfm" "0.784763" "ulnnuwyptq" "0.089208" "ddpgrvwowd" "0.572023" + "bweysooxiv" "0.646567" "pnnzqcutoq" "0.839930" "tyephutkmb" "0.264179" "nszbrpweoz" + "0.128647" "gehuriygwq" "0.659204" "vpehhmoxva" "0.491950" "dpkiubfzbx" "0.384848" + "wgtmckqknh" "0.188043" "xeurpmfdmo" "0.418849" "nbwksmwxpx" "0.605004" "plbxaamppj" + "0.276890" "nojnedgabk" "0.833175" "ygrpkpstxq" "0.297792" "etsngvbrff" "0.952694" + "qzcrpbvatq" "0.474358" "qbhdjhoohc" "0.067502" "btcvhacldb" "0.014993" "osncqcuest" + "0.409761" "uzktwqcdeb" "0.335957" "jttqzbazgz" "0.615791" "qmxxfyuodo" "0.802366" + "zuibhuihtz" "0.431484" "ctqxoyxbwc" "0.405363" "azkdbpnshy" "0.590182" "qwozutlufu" + "0.916406" "yqmzmmzwpd" "0.493531" "yivxcecwlp" "0.436352" "lzzptujbjp" "0.743434" + "ewoqykjbkc" "0.132159" "zxlbhyeckf" "0.302988" "nswjopvtqv" "0.543728" "gkmwutvars" + "0.228101" "mupcilqfjg" "0.585761" "skstqdgbos" "0.306041" "kjqeujfkoh" "0.441690" + "pvwvdaorrl" "0.920910" "pmytvtksfi" "0.666617" "dniplpxfof" "0.512864" "twuvkpjzzw" + "0.600784" "aufhfrhccf" "0.106240" "ljinllovsw" "0.889183" "ywgeotcect" "0.010523" + "ltvfnuuwil" "0.081719" "nnnxouavyp" "0.369352" "tglieutcis" "0.790975" "wabroeeoop" + "0.431765" "vsvhjrymqc" "0.033449" "jhdcicttmm" "0.334186" "dlhjfafskj" "0.311725" + "ffksbrtbfq" "0.735770" "lcdchjadll" "0.402876" "ijdgnlzprg" "0.013454" "znartcywze" + "0.320563" "agswwrfabr" "0.859299" "euleuicawb" "0.237979" "aoqlctikzg" "0.084421" + "idmjjbjvni" "0.540346" "fkdmuxraqf" "0.827762" "vyewicgjio" "0.264901" "rzanpefsfy" + "0.249106" "pubqtzzzko" "0.641931" "btakuczlec" "0.028675" "hfjxrrsszf" "0.112206" + "dthtfrqkce" "0.881211" "vnsufnurol" "0.158854" "hmdzsuuyrn" "0.657811" "shckmujxzo" + "0.823770" "fmmammvdyj" "0.794376" "fhuptkhkzm" "0.920863" "qquwyuyvvw" "0.237467" + "tdggmsxysk" "0.382295" "ysnndkycix" "0.164685" "ftyxhyfokj" "0.924193" "dmbarohbfj" + "0.985108" "mallnshtok" "0.932159" "cszvzbrmoy" "0.948943" "stnfirydgi" "0.243979" + "bxwvqvndcc" "0.729360" "wtzqqecgfy" "0.827464" "mkngszsxeu" "0.066282" "ncckxlmsvg" + "0.832378" "pdjmftsmob" "0.546000" "vqgztpmzhz" "0.880249" "vvmaucizkv" "0.529144" + "fnpdsuozxt" "0.599864" "gritvkzfgw" "0.575660" "wtcpliaxmk" "0.095307" "cqfnhujrbj" + "0.428143" "osaekeukqx" "0.988758" "nepxmyiuhr" "0.438792" "lfkqrtxocm" "0.337112" + "pgdhjrxhga" "0.029529" "wcpbfslakk" "0.817147" "cynhehkcxs" "0.796564" "trzqdcaqdw" + "0.292661" "mxydilgynv" "0.296909" "lscjhgztom" "0.658885" "rqurawzebz" "0.291664" + "pghbwbtfmk" "0.176822" "ckibsdtfff" "0.884684" "svvdufedug" "0.806829" "fjdjumschq" + "0.960759" "ybcdthmgws" "0.806253" "ogtqmpnzie" "0.749828" "yjyffpgoop" "0.313174" + "uwiqrvcqvu" "0.978051" "xepfvvcovk" "0.935539" "oxsdmrdbit" "0.949876" "rfxibyjmpg" + "0.527448" "gwzqcetcji" "0.136049" "mkxysrkpug" "0.207709" "jjumoixniz" "0.302963" + "pypepewjvq" "0.097174" "gcfcbjybkx" "0.982914" "ezgxjiwwig" "0.643767" "kjiqagynco" + "0.789879" "urkkyscfti" "0.345265" "tsnawydcru" "0.657757" "sshbuxfljd" "0.849243" + "fazsvkljef" "0.122817" "jfqxkxgqhj" "0.874860" "qxbqbfcgjp" "0.019772" "joijmgposs" + "0.396742" "qocjpufxio" "0.317664" "xpkwqbfban" "0.417027" "saqilljaid" "0.436455" + "qlvgfplbod" "0.689103" "aoydkdfrpe" "0.151562" "dxpepbctea" "0.004086" "jqurtadjro" + "0.275095" "szupcnvvij" "0.975388" "nunpqugdit" "0.619831" "cmqraybrlw" "0.021593" + "bnatichltp" "0.615263" "zuoqjiciij" "0.516554" "suhwnartid" "0.500129" "bhfmhanvxe" + "0.970410" "qckueiqiwh" "0.310292" "hmwfncgzxg" "0.136794" "bhrvnadcdk" "0.537331" + "bwjyghaztz" "0.845703" "hwuofuftlr" "0.062857" "xzbqjpzqlm" "0.148334" "rhkpfsuhoq" + "0.903658" "ywlqbjqeug" "0.171792" "haxesjafmh" "0.607711" "ouroipthpq" "0.213063" + "kdklhpxntt" "0.566853" "mhrvuemywb" "0.066576" "cpjveufsvk" "0.575035" "mszjkgsrio" + "0.883155" "rtskokvklv" "0.326063" "kdcvbkrbsj" "0.497748" "pbfijwccjp" "0.096181" + "gsvkmnluiz" "0.651896" "brwlqbfoat" "0.698481" "wzxdkpehwf" "0.241647" "hhbceuegvh" + "0.335103" "ubwlcefgqb" "0.139593" "vlhtdpqavh" "0.043865" "wghyakzbit" "0.232605" + "adfhfatarh" "0.280517" "wevfinjbqk" "0.240397" "scgjdkyetq" "0.661665" "ymwwctfodg" + "0.406742" "sotsxznskx" "0.651442" "ckqebhazel" "0.954087" "dwzqowbrsd" "0.118853" + "dclualrzqb" "0.859469" "ifiizdeong" "0.715490" "etcsjxoqab" "0.365077" "igehetokzq" + "0.303267" "tuajnnqtcq" "0.187568" "mxpzuzrzuo" "0.447848" "oqmuhlruqy" "0.385352" + "hvtlkrungk" "0.055211" "dygkzcpakt" "0.403664" "rnlaakgsrf" "0.314530" "yoblelzlkd" + "0.082484" "mwmcwqzbld" "0.916300" "mgldvzleyy" "0.169185" "ahcaaodvgi" "0.972997" + "erglflfnql" "0.188418" "behdxlfdho" "0.605785" "ikpikupjoi" "0.348162" "ylulwsnjay" + "0.512359" "qcsxjrjcfc" "0.376004" "ollacusjzj" "0.312060" "ethxaycsil" "0.912136" + "laepwenqmc" "0.629227" "eksvvoxziw" "0.473402" "ulepgommyy" "0.112999" "efhynoxlul" + "0.141312" "vhjaphfdpj" "0.501631" "otclvmbilg" "0.622360" "ndltyojjxj" "0.560323" + "ehnrizfmfo" "0.856890" "tqkprkoixe" "0.295874" "cvohdragtx" "0.144378" "emfjcnujqn" + "0.013908" "bzursuzuei" "0.765880" "qmnxipsiga" "0.655198" "dxnprfawun" "0.921417" + "umttshfkpk" "0.269042" "nrbfkysxaf" "0.426194" "xjksnqifds" "0.009747" "qatkvfuttq" + "0.222498" "bqqohkuylc" "0.487539" "thmmmlqluk" "0.447940" "gnrmnwaxls" "0.757365" + "usykkwszvh" "0.127757" "nnhrgirrtw" "0.114722" "sujbwndgwl" "0.320579" "pkvcbelpos" + "0.028885" "fussukqrph" "0.898756" "bgtxhxkhvv" "0.440242" "ywiurvfbpg" "0.195203" + "rakustfykw" "0.455870" "txhllnvudv" "0.038326" "smwbxeqbed" "0.636364" "rdsfcdvkqz" + "0.602638" "nknlysgviv" "0.703795" "yzviqaobku" "0.517737" "rngtndwjyg" "0.896203" + "jqmscuprwq" "0.758854" "bcwncpnibg" "0.497263" "rwrxxrnwtq" "0.810537" "fpmbbgiaao" + "0.816854" "mshexjmkmn" "0.132051" "rhzpguhsws" "0.319074" "krxneqolle" "0.336648" + "dozecfsvue" "0.607888" "jbzyfznpdn" "0.971581" "tjnbsybxws" "0.261454" "vpzsmbjkvy" + "0.581137" "dewdgfrhos" "0.680898" "gcjruttnno" "0.999251" "uzaejrbwue" "0.158681" + "jvekvvldai" "0.606900" "imexfccbxk" "0.986671" "exhjfssojj" "0.999539" "hjjxyybxiv" + "0.548141" "mjifqzmtsd" "0.838391" "tbqidtevrl" "0.812230" "hjlhurakwh" "0.308053" + "ughnpilqqm" "0.047394" "kfselnpkim" "0.852908" "vewfxcxkpf" "0.201866" "usjmfkopln" + "0.126260" "yxsnreuepl" "0.246804" "flrsaczxzc" "0.835412" "aadzbodres" "0.293504" + "bhwytqsafu" "0.708503" "lpahctqgna" "0.045136" "zwlhpcahwu" "0.601683" "kgirldeylz" + "0.556444" "krtsiucvvu" "0.595704" "adlxahxsbq" "0.191964" "alokvrpbih" "0.572409" + "mmcunsiwad" "0.551146" "dfdodbelzn" "0.441988" "ejlunxlwxn" "0.419999" "tlnkrncpwi" + "0.037276" "jhocasnttw" "0.132050" "qslrwqmixc" "0.767421" "afamsavgsi" "0.697485" + "ramoirrdyd" "0.245522" "hplvvuoscb" "0.506283" "dxufcyurjx" "0.614086" "dablvesuho" + "0.085394" "ovqohpxjft" "0.343138" "qclkaeciey" "0.148648" "dgodkfjzos" "0.740439" + "iobkwbwceu" "0.829028" "ocmtsfpsgh" "0.472991" "ubtiscdgrn" "0.349979" "fsoardckcw" + "0.094781" "sstqpivwip" "0.846751" "wzuhzzdezi" "0.746618" "tmyuncyoyd" "0.338101" + "ygoiannoht" "0.538581" "zkbqvttlzy" "0.306575" "bwizktcwmb" "0.560909" "dcjlwhfstw" + "0.075409" "pheajlhymx" "0.142967" "ysntbzffxq" "0.385727" "rgtondctpo" "0.825053" + "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" + "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" + "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' + dataset_name: 1key-zset-1K-elements tested-groups: - sorted-set tested-commands: @@ -23,10 +311,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANGE zset:1000 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time 180 + arguments: --command="ZRANGE zset:1000 0 1 BYSCORE WITHSCORES" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml index 5df742aa..9dc5145b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-1K-elements-zscan -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1K elements in it and we query it using ZSCAN. The sorted set is expected to be skiplist encoded.' +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1K elements in it and we query it using ZSCAN. The sorted set + is expected to be skiplist encoded. dbconfig: configuration-parameters: save: '""' @@ -10,7 +12,293 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:1000" "0.645108" "iehxaaneev" "0.793870" "icatrrbcjs" "0.558445" "aieekmivcb" "0.712596" "xwtwtwmbgu" "0.138467" "ctnaggdbru" "0.319593" "nouncgkoik" "0.193744" "naggqdxcjm" "0.238679" "qjrhtqgwjc" "0.308197" "ihealvwnxb" "0.903443" "hggqmlgwha" "0.210797" "pjdundsxrd" "0.706360" "zcffhzusrl" "0.392186" "hmcpcrjumm" "0.392543" "iiissmznfe" "0.024854" "caaqjozcqh" "0.169284" "ooeswhfdnj" "0.545674" "txgjxzovte" "0.943467" "xpcpytommm" "0.130763" "icqjxcermo" "0.167315" "vqtixjkcbb" "0.629596" "wwfbpjatrp" "0.413113" "vtaiyncmyg" "0.457128" "aslibwggrp" "0.105554" "bpvbnmpekh" "0.771857" "gaotvjctjh" "0.306570" "diwmfuckel" "0.939014" "dgcesswkvc" "0.905870" "cflarkquuv" "0.063393" "lqqivzlppd" "0.582370" "iwqanwtvcd" "0.031539" "nvonwipkta" "0.720765" "rcwbzvwbva" "0.315533" "sbrjnwxdip" "0.688803" "kuiumwomxi" "0.890704" "qgobfhgspy" "0.334490" "wmvhvwnowp" "0.673452" "uewpgskfpu" "0.819089" "cvnlzjdfgf" "0.846270" "mhbfsuaovv" "0.652710" "anmcogawkg" "0.778304" "xsueeljljp" "0.771838" "padscbypdo" "0.177771" "tjnjhejnju" "0.793709" "dxdngrmypg" "0.799628" "itmekixthv" "0.017343" "giubyhvaav" "0.004991" "bbfvuialin" "0.580003" "tctgzmjads" "0.405932" "mvfnirshbd" "0.851340" "asbtvfzien" "0.226860" "vqashxkrik" "0.391362" "gazojexans" "0.287772" "wybmlpqblt" "0.191989" "mobwpcyxuk" "0.224179" "sjbaedopjb" "0.202665" "axhoxkubdv" "0.968856" "rqiyxwpuyv" "0.483072" "jpphbjtbrh" "0.991346" "mvmsikqfxu" "0.350243" "ltkauvxggz" "0.588627" "rwllkdzxrj" "0.039496" "hhwvslfxmf" "0.700638" "cgpvvnbvlk" "0.313291" "fgcehqgsso" "0.343576" "oownjpxrov" "0.192722" "umwunfzsvo" "0.273418" "jzceexkqam" "0.968219" "arqqmfmmbz" "0.394788" "plqbwsiuzw" "0.378863" "rhnkzlsjtk" "0.605956" "eioxaswdee" "0.438622" "rspghuhpbp" "0.356931" "zexblqeora" "0.009694" "stttkrbfqs" "0.620955" "rmqxtqcxua" "0.713440" "emdwpvauyc" "0.999344" "olezxlliej" "0.361739" "imnjbkmsls" "0.308247" "thqttakyzy" "0.424859" "jjlefkekuw" "0.036802" "qgasrnjrld" "0.160174" "whdftyqojv" "0.725586" "snepgcispg" "0.004061" "ipubipttcb" "0.702881" "ocesqguvym" "0.206341" "qwxzqlqter" "0.831086" "xmknbbmdbf" "0.353833" "spoqshzjoi" "0.029532" "slskrnekbc" "0.389068" "gybxnvwchp" "0.520218" "uvlswctlhx" "0.872011" "ujybghjfnf" "0.299529" "lgqazzajpx" "0.153536" "yhlalzusch" "0.611873" "jeazfmhrcb" "0.795973" "vealtjlqyc" "0.284121" "ejzwnidqwr" "0.429848" "nifzrybfuh" "0.133500" "qlorevyltp" "0.870113" "wvdmobfisx" "0.240635" "aqyfvxyjqr" "0.903983" "zybosgbtxt" "0.305875" "bvvoibkfrt" "0.132423" "iziwqojsoq" "0.041522" "qpffifpdiz" "0.085682" "ocoflktdhp" "0.159059" "ncabqesziv" "0.650525" "zuccleayil" "0.354068" "pfvfxrrfhl" "0.546089" "rdipvyeqoi" "0.452595" "yrsizkbbwz" "0.723931" "iwuuxdactm" "0.595940" "mbewprqunw" "0.933906" "ajdkqflpen" "0.696150" "wmyphdckda" "0.841744" "lxoaezrdxs" "0.461889" "jqqogagqni" "0.141414" "yhdgqenmwv" "0.347382" "wrrgxxkxkc" "0.398727" "omwbgglqsp" "0.443000" "ymqxhmnidz" "0.765094" "nqwjivcosg" "0.986056" "tctrsxgnrc" "0.576107" "ndwiompimr" "0.349571" "cmhkstsjok" "0.734824" "jfbgmhtjke" "0.929214" "gdlztbhpeq" "0.102103" "kmifjielrw" "0.796464" "khkkfmzkow" "0.044303" "akzsgaeqon" "0.349244" "ozpyyaznsh" "0.282090" "dvgqwzignk" "0.124180" "lawrpikwsk" "0.145508" "qnqzibcmip" "0.014177" "jlghqxtvok" "0.271586" "orqqevpmca" "0.941327" "yrvmdhnnfc" "0.964838" "ajkgxmtamu" "0.681722" "mcbuftndrr" "0.524113" "caxgjftjyj" "0.432128" "bzwxqcpftf" "0.167489" "krfosgrmjb" "0.309948" "ilkuddrdvh" "0.910226" "byrkeibrfb" "0.382510" "bpnfopinub" "0.152318" "gbeizdzdyb" "0.570025" "vgfgbsbnwy" "0.290087" "zbfeyptemz" "0.376504" "wcouaiatsu" "0.071776" "omeatkwwtc" "0.029506" "cbjovvgqqy" "0.484980" "ofykgotycd" "0.043870" "bnxtlmiwup" "0.751689" "uqvzpcvugl" "0.419781" "rwfykeeqgx" "0.087991" "nubsytpfao" "0.808363" "xeyxlxiqch" "0.187833" "rrrfhnclbv" "0.864568" "mnsaklzgob" "0.725490" "zujobawsct" "0.204763" "pcuaesomdc" "0.223025" "lftmqoxhfc" "0.506344" "fgygwdazbm" "0.261202" "maxylirjgh" "0.410370" "jgaieawkcu" "0.260167" "ffrviosqzo" "0.250480" "fiafoggekm" "0.563103" "wksgvbkbyw" "0.974324" "nmguhcygct" "0.259207" "bekchebgys" "0.783447" "hmnaoeeasz" "0.764739" "zknlteeaxq" "0.828842" "qzxxwlfeki" "0.464344" "knycrcrsbm" "0.984059" "izizuzzjuv" "0.384700" "blujwnyluy" "0.930637" "zrwgpknaop" "0.656346" "fffreqppjj" "0.051069" "alfftdxaxc" "0.320961" "ywmqoaztmy" "0.279848" "lbjarnpxhh" "0.294326" "ecsburyjhh" "0.806331" "jetamrlglx" "0.208517" "ruxsmttpak" "0.257535" "hxbmykkugi" "0.821400" "jzstgleeby" "0.546144" "bovkdabcdo" "0.226768" "jhkdwtqvwl" "0.398483" "iqbyikqjmx" "0.125020" "snomfrutha" "0.264133" "eiziligjfr" "0.043614" "bqoabrqwwj" "0.411120" "utymwhxigo" "0.850358" "bstezdkmig" "0.485876" "csjfbpjyzq" "0.528742" "yzrdbalexf" "0.110554" "uidvmrqyjd" "0.751337" "yjhypaonqq" "0.074346" "gktcjcfxbb" "0.020820" "lqxpnplleo" "0.234692" "vfcpevtekf" "0.157122" "xglrugpjkt" "0.174485" "fidsuuizcf" "0.939223" "gdqgmwxkmt" "0.436623" "ghepftfjgk" "0.071851" "mjwrbndexu" "0.847464" "shlwywnxpk" "0.646937" "wlogkzxkpo" "0.532516" "pwgjoppmgc" "0.592209" "ossjrvqmaa" "0.598701" "rnvhfxbuoi" "0.443002" "lydebbpmfb" "0.279549" "sdnkjddyut" "0.877963" "zewylkylsy" "0.080681" "rnfodijavx" "0.696470" "ukdnaklmcp" "0.102279" "tcpwkimype" "0.881048" "bgcoyoduda" "0.415925" "gpodilvrnm" "0.848481" "srkvjhetmj" "0.040637" "ltgidziwzm" "0.244640" "tnratexlre" "0.075067" "tfonhwnuxj" "0.034629" "rpyroriegs" "0.887395" "rjrtvpntke" "0.685654" "vvmkjgajwa" "0.400525" "nywteueaig" "0.435228" "vklwhyzqhk" "0.060039" "afzlyodwiz" "0.510563" "ropuqidkxv" "0.048751" "roczxpuisd" "0.269116" "mhxojehvxx" "0.988874" "dqqfcdugde" "0.240165" "qtpcwuafar" "0.750459" "uvqtefqdhk" "0.828087" "tstbluhyhj" "0.861661" "kxggjpatkd" "0.351980" "wgtjxahmef" "0.440586" "tdceweesxh" "0.897607" "qzlfnntjar" "0.564519" "ljklggibcy" "0.372248" "nwnyjkugcf" "0.098880" "qmhyoyctod" "0.545321" "bwsdzrxzse" "0.996184" "kmcwshsbye" "0.819622" "ifhkjgmxrd" "0.034752" "lnuuootxmp" "0.243929" "yfdsmhtria" "0.317712" "pupmdjgyed" "0.706819" "aryiyaltqw" "0.755626" "eyhgspybnr" "0.066966" "babfjxxabw" "0.681568" "qhhhipzncq" "0.289070" "rwhzzytdsq" "0.040067" "rbdabbmnrf" "0.325428" "sfuvzzxbxq" "0.377881" "fgjnsosfrp" "0.737437" "llimzyabsp" "0.035594" "ufdxqlonpg" "0.343033" "mjlpvuoghe" "0.189450" "dyzedskzkq" "0.671180" "dbcxnsiacw" "0.679152" "fsuovvpgng" "0.919742" "tvlckdoyfe" "0.191694" "pkehotsmka" "0.219460" "nryvfijxhj" "0.188159" "yqvkykgjbe" "0.564495" "jlgepeyhpc" "0.238642" "nwywtydqew" "0.751883" "cakvxrdpmj" "0.894821" "eaetplspga" "0.630431" "lrhrkuyzry" "0.358602" "ksppwhhqzj" "0.489667" "skkawcmqqt" "0.778531" "mkrrypcfzy" "0.101774" "tkgihmsrha" "0.268255" "oqdlpaubsc" "0.577108" "mdcwoblmkl" "0.260332" "rjrptuhkav" "0.516929" "wvsnfinuil" "0.941773" "aexxjlgwuo" "0.196086" "kohpozxkhl" "0.137598" "qxxinxaqxn" "0.378124" "pltsnzqvpi" "0.579231" "mcojdazpfq" "0.240701" "xkvgnzjgrm" "0.898586" "fzzcioobeb" "0.264136" "tqblforkpa" "0.448451" "skbzfbeziu" "0.051773" "vyiqkfoics" "0.536133" "lxzdcbveuy" "0.502064" "hskkmrluuf" "0.698222" "ltomuspfzc" "0.590610" "fmpdixcckx" "0.057498" "ukprrucywq" "0.660543" "vldwfdnicm" "0.826104" "fzatoyblsr" "0.754438" "wbouqpojzl" "0.117783" "pmaagvqldo" "0.533611" "wxjdgbugeu" "0.025197" "nlqtadqinl" "0.760125" "jgcqryhsvk" "0.551085" "uboipezuni" "0.203084" "tmkoxwdgpx" "0.415950" "xgfzndhodu" "0.271285" "vuqlqdpfdn" "0.385063" "zorzyqtjtr" "0.537420" "uedehyieof" "0.972732" "jphvxuqipp" "0.733064" "faxedqgskm" "0.342786" "cdghgcsoth" "0.903818" "qwowxqzrkz" "0.653952" "roqzbzpbbt" "0.768345" "sxcihybfci" "0.892237" "pbxrbaxnor" "0.764531" "geizujxrkg" "0.620438" "beqsnrixhl" "0.521196" "llamjvxyqo" "0.699100" "yzcspfvcot" "0.459957" "ubghghklvj" "0.297416" "giswndixdf" "0.086339" "kgopxvsdah" "0.000782" "tocawprsxz" "0.426201" "ctusqixohm" "0.339036" "hklchdenoe" "0.276883" "btgeubdzbb" "0.860669" "cjcrpmggtu" "0.147353" "ngcxqjjpdm" "0.875443" "vorgqhmaoq" "0.923510" "bgcnzgcmza" "0.087182" "pyjpxqnavq" "0.634058" "tdmjyuitvv" "0.963838" "igwekdegcw" "0.235680" "spogjykkfs" "0.675610" "vlcnbfqvox" "0.661566" "tzhjrlfvfp" "0.317132" "ebhhhgabjd" "0.118838" "evuxmkrrfl" "0.246357" "pxzkuasjek" "0.450004" "hnnfmyurhx" "0.623882" "yzutuazhmh" "0.331435" "eovsizpcjp" "0.218206" "dfemamyevk" "0.935043" "evjrybtwww" "0.820919" "audguegpmo" "0.966038" "nwybjbhgep" "0.748183" "nrencopzqn" "0.287079" "hyikggurti" "0.375950" "xwxwosqkhm" "0.388941" "kcbotffyca" "0.676492" "xhspgwheck" "0.782514" "rkwlgzhvvy" "0.628528" "tumnalubch" "0.672107" "dhfundvlpn" "0.661732" "qsxfnsicrx" "0.975140" "gamcdtywne" "0.608014" "asidljmwgb" "0.897256" "gygftrsdbm" "0.349942" "ybckvbeoib" "0.932954" "anznywecwk" "0.726428" "cgmivhyskk" "0.843359" "xkiuuciwrn" "0.023708" "lyhqvxolfw" "0.822799" "eafrzhdhhq" "0.530864" "dbtbtvkqss" "0.848648" "hvxefqtmqu" "0.866428" "eraxdyjftw" "0.446144" "eyrbqexkff" "0.048181" "dxtzxeguoi" "0.683328" "owjfgjqqjc" "0.489625" "pisgqibyae" "0.970240" "nsdvirehqh" "0.583183" "wgtrwefdsw" "0.174619" "mamtueyrqn" "0.222798" "wiqhmhkiel" "0.704784" "cnngbbpowp" "0.837632" "curhymvwsx" "0.256654" "uttazeawix" "0.701426" "farwqgfyjf" "0.463106" "mivctgaajt" "0.534385" "qchpfcigwa" "0.538479" "lspvrnxnjo" "0.571538" "bzjzucrypq" "0.599488" "pyrpwxalpc" "0.924799" "rncdgqxqfq" "0.315947" "nenhiiibwx" "0.909998" "arqfxfqkzh" "0.405248" "fpdflprzvn" "0.674952" "cuuytorpnp" "0.955493" "lfojnetxdc" "0.692204" "uqbpcvkipa" "0.991647" "pribqncfuf" "0.597850" "xbvbujurqw" "0.498266" "expefhkisx" "0.231363" "wwowdvybjj" "0.357729" "qsoiwsugdv" "0.401551" "ntmgbzaivy" "0.230953" "kjblkrvknt" "0.707000" "xkaailrpns" "0.246097" "muocqqypmt" "0.720597" "dspznsgszk" "0.147380" "gkneclxnnt" "0.753306" "higdkhodzy" "0.003853" "csqcfxyzsy" "0.782493" "iyeiercbxr" "0.732835" "hjekcxfyds" "0.644764" "ahjawbsqcw" "0.038385" "kapxglqccs" "0.229066" "ygbfgfefac" "0.791507" "qpzkuxsipr" "0.991541" "kmqlwfbsex" "0.698087" "vwayaqmtid" "0.972772" "ghtoyhrfxh" "0.890508" "gcsswbksnc" "0.949597" "snpuvnebpy" "0.107435" "mugdxqnjxj" "0.618836" "vkqalcokst" "0.433195" "ltghdkluqq" "0.448407" "mumhqarhgg" "0.135863" "gbjzsedhag" "0.564412" "hvfprkjlbc" "0.228627" "jqgtbgbybq" "0.826784" "ydqppngxvh" "0.990663" "iamjlqlznh" "0.361827" "zzenkvuesw" "0.922425" "rmdayyptch" "0.150657" "ripecixnpr" "0.174850" "pkgpjwyfbh" "0.949969" "ortxlvmdoc" "0.857772" "rcaatkjyur" "0.649739" "qqfnugftmr" "0.332970" "bsavjyaksg" "0.801014" "pudgkcbwdx" "0.499720" "ynnhyctikq" "0.782441" "ekjgqnjxyl" "0.495010" "kbnjiilaqd" "0.186830" "cvmicoarvv" "0.439088" "iibgagtkpg" "0.715350" "jznackjcrd" "0.289687" "symbgeyple" "0.333963" "xlmvatfsly" "0.958199" "njmufqrykx" "0.541363" "nbizrabfuo" "0.933496" "amuwlfaxwv" "0.714080" "ahfktrqmgh" "0.100087" "kdodndexvr" "0.149844" "isqymcuffe" "0.706632" "yzmodbpsnb" "0.847058" "jlpobgvouj" "0.951551" "eqiukbyscu" "0.068236" "mqqrgbacfa" "0.490453" "mmqblvrscy" "0.235491" "fiugzrozky" "0.377347" "nvkfnfzoki" "0.127271" "vjihaakiof" "0.795512" "apyzwvajot" "0.348210" "lxsinouutc" "0.567777" "ystnkbogee" "0.477872" "oeawjlqnyg" "0.623260" "hyanpicfan" "0.664609" "gtqrsktbaa" "0.320234" "fffylsswky" "0.096201" "zdmgjjyukl" "0.421767" "ffcqkkzllx" "0.421724" "ogyvxbgcwi" "0.195373" "dtkfydidli" "0.127873" "jccorylnjg" "0.049319" "myzjxvtvjh" "0.808586" "dtuhvpszzt" "0.320150" "kamgfgbxel" "0.370480" "nraylduhut" "0.265837" "abinkgshoi" "0.975716" "ghqwxaqlef" "0.502953" "ftnbjymlll" "0.310925" "pzrchtwaaw" "0.567703" "wdqygrxkya" "0.728237" "snunzlgfkd" "0.896651" "nkyuframnm" "0.867424" "rxvhmzvbcv" "0.063563" "rrzcqyzdzf" "0.629553" "weqhfkosif" "0.462773" "ctgwmawlgl" "0.718046" "kpzmuwqbnt" "0.906977" "klaeknlbrm" "0.264978" "cejkfhuykf" "0.619446" "jhibapuhga" "0.061965" "wemmvswznk" "0.061592" "vdaebbupfe" "0.689222" "cglxptkcsz" "0.174769" "quemrlmwod" "0.898675" "ydigxptqbl" "0.948273" "gjutzwoxlf" "0.075856" "vefgwelnfo" "0.746864" "dcepfcdddn" "0.965491" "qkyfpamste" "0.633385" "gbkqhfumyu" "0.737572" "iwapedwyle" "0.754054" "ormdblyhhn" "0.932719" "dtjljhzqcm" "0.767225" "pthacnunjj" "0.649379" "xzswnnldvs" "0.216633" "muhewfzihs" "0.639269" "fuftndsnim" "0.909138" "xyxmlrdbui" "0.508704" "jwvqixjhho" "0.582770" "nfucelqjfe" "0.089356" "glynpmsjcf" "0.838816" "avchkjnlwm" "0.908984" "ylxiwiesps" "0.043408" "sadqcfniau" "0.886747" "qgdgujdvtg" "0.661810" "gfhrrjczsp" "0.907605" "dpauqcpgyi" "0.728562" "ppdxnadmje" "0.330399" "kqzjnkdlxd" "0.082110" "yhejmjwwni" "0.711500" "xsgcuvxzor" "0.866779" "fswhywqxhy" "0.421784" "rtnhivnxtb" "0.497701" "veegnotgmj" "0.518567" "tsmzfswaxo" "0.005142" "ifpfyncdfe" "0.249159" "vpqlxtfkjz" "0.741728" "twmbtaxdro" "0.139049" "cvnnitrrow" "0.070475" "erahoeivfw" "0.488547" "buzhjxsbkm" "0.741781" "nmtmjmhmdl" "0.514985" "fqtktfghcv" "0.866908" "iqzxblqkeo" "0.505662" "qydrgilxxt" "0.773945" "beicnwdryg" "0.668057" "htawohddyn" "0.675705" "jbqibabrmv" "0.784213" "aquymkrswt" "0.845563" "irrovfyshb" "0.239145" "outdlyeqvq" "0.083427" "ofcurtthcs" "0.865472" "xfxlervrgn" "0.410198" "myrrmvflyw" "0.757061" "lywsezpzgf" "0.634949" "jvtalmlkng" "0.435516" "ghwcrdlbjj" "0.228243" "rqkcyxiwhz" "0.337555" "gzekysdunp" "0.252513" "qtewhixedb" "0.767732" "bzfzxzecrs" "0.092367" "whsxmqffqg" "0.920685" "dmxcbvzrxg" "0.238809" "dhzgpwewsx" "0.569625" "flvftlpbjq" "0.681014" "wxswusqpeo" "0.558549" "aeafusfzdn" "0.076310" "gayysuldha" "0.343809" "nvqfyljbef" "0.131309" "ocgjeuljxf" "0.709863" "cnbqnvxmjp" "0.339533" "sotbjzlsvz" "0.818601" "cvbbbdzmie" "0.244589" "dpyjoihqrs" "0.924136" "ivinvxopgz" "0.004308" "zdulfflfqx" "0.113676" "iosqxoobrk" "0.009689" "kjeevccyof" "0.975034" "jigyicdeft" "0.351974" "sqwhsgboef" "0.575486" "bvurseeqmh" "0.701469" "lbxvlwzony" "0.108482" "tqqmmvwact" "0.639351" "keklddczkd" "0.361829" "kbfqdppnfa" "0.342636" "qjwrnhooax" "0.365558" "koujdppfua" "0.866551" "xrvonyieqa" "0.907022" "ccnbldglgl" "0.327711" "egmgddriry" "0.657241" "gfdzgxfdcg" "0.080151" "eirhwkdgfq" "0.599621" "adlryhdbpr" "0.645347" "ezbiwqnabg" "0.216803" "dplonqlliz" "0.436938" "aiqqyusnuv" "0.630922" "fmyleefltp" "0.387614" "mjgvtydjtm" "0.239791" "trwzipsers" "0.686253" "wvlvshnhmx" "0.710512" "nugjvhftma" "0.937218" "yafipxfsip" "0.887614" "shgetgsird" "0.730346" "cblsafugqk" "0.940470" "spdyueanru" "0.203652" "wjhaavxfge" "0.358953" "otadcihtmd" "0.428536" "irlduoinie" "0.203054" "asretszbav" "0.686840" "ekponflaeq" "0.116664" "btxehrokkw" "0.841981" "ctkwlhmgfz" "0.461922" "emfqsjraia" "0.729528" "ncremxgfdb" "0.747886" "dnvwyhyhsn" "0.314724" "gjiwldcfqh" "0.915762" "kluswgtjsf" "0.630900" "uvbtcgtopw" "0.734056" "jjczogqdwz" "0.954115" "iesbitdnjd" "0.922486" "glwrmjpotx" "0.330378" "nmfihtnkel" "0.752510" "tvzacklhdz" "0.826313" "xtwlklqdna" "0.190858" "rfhlttsuqy" "0.286279" "nlxwjmzwln" "0.334573" "vjjozwrovk" "0.266818" "gqybtjuhvq" "0.477130" "phfuspevwk" "0.424753" "vzcclamtun" "0.334857" "gbazuqnmit" "0.926985" "zmmwzkjrjl" "0.273126" "xigznrdgqy" "0.872996" "yufagalzhk" "0.973287" "kngwkkzwts" "0.642007" "fuipidfbjt" "0.640561" "rwzijctxzs" "0.547026" "fhobhpwwkp" "0.976843" "nqxdrqigvf" "0.889949" "zsikdzycyt" "0.955177" "inboyxgoqa" "0.570888" "rsivptwulz" "0.069483" "eqaxrccwjq" "0.476052" "cctlfgicpv" "0.950332" "gdozstnglr" "0.523253" "wovoupawzt" "0.396718" "nunchscyqc" "0.124266" "socoxaegfa" "0.847380" "qbpmtomqpu" "0.157463" "ngwifjdpha" "0.444848" "ztjuqomjck" "0.834028" "hrhiqcarju" "0.242287" "paitaeqrpb" "0.601139" "umoicweaab" "0.937897" "xekxarmwcq" "0.318636" "aejnvyfdst" "0.723443" "mlznoaajqq" "0.216821" "wjibkklezg" "0.418684" "jxiewthqls" "0.261108" "sldzewoxas" "0.123533" "fvemodlpgz" "0.541682" "fgzwwaedjy" "0.327706" "twpiiaedpc" "0.286415" "brrlblrxwa" "0.354345" "fojjpqmbck" "0.162167" "rhzqdtxucc" "0.553529" "fzsoiryhfn" "0.995917" "zavrjnezrf" "0.015279" "uxvibjduto" "0.179399" "puvgjfjyaf" "0.592098" "jybzltmwrs" "0.786701" "xftfzsoiwc" "0.632713" "kkrxiaiife" "0.023264" "nnfxoqebys" "0.639560" "wrqnytptzm" "0.931933" "powzkcrtvv" "0.102203" "gefoharnza" "0.893614" "viwarrumob" "0.548257" "pkcqdokojd" "0.804829" "kzuywkxlku" "0.252774" "iijjcabgak" "0.105055" "nxllkzroin" "0.261153" "uesalivsis" "0.153373" "aqlapmghln" "0.538430" "pfaytznuaa" "0.706254" "ucxeoqcssr" "0.506384" "tivnqailcl" "0.550096" "dtgjnddwch" "0.228131" "suahxaebee" "0.693047" "ubzgvzputq" "0.255977" "tqjpijliii" "0.320788" "mxapzqqqsw" "0.392916" "qvpuudyuks" "0.807373" "kprzbyngsw" "0.579009" "dflxukffgl" "0.639254" "xqvjnlpssl" "0.509891" "wvrlxfoxff" "0.079358" "tqpqihwjtl" "0.174471" "vxrtzngznb" "0.354177" "nahweurftw" "0.735534" "nehqnkqnld" "0.760483" "yfvwesgulw" "0.392384" "zejhycldyy" "0.545858" "cbtpbbfrdd" "0.509818" "oglqutqfcx" "0.171142" "jhctncrzlw" "0.366168" "wqsqzzbqhm" "0.547857" "mkbkflixkr" "0.503947" "nbkaxrojqq" "0.081083" "erqgyscser" "0.370359" "owovlhorvw" "0.309822" "rofnkytnhm" "0.231350" "yajpmxmuwz" "0.394314" "gviypfayfm" "0.784763" "ulnnuwyptq" "0.089208" "ddpgrvwowd" "0.572023" "bweysooxiv" "0.646567" "pnnzqcutoq" "0.839930" "tyephutkmb" "0.264179" "nszbrpweoz" "0.128647" "gehuriygwq" "0.659204" "vpehhmoxva" "0.491950" "dpkiubfzbx" "0.384848" "wgtmckqknh" "0.188043" "xeurpmfdmo" "0.418849" "nbwksmwxpx" "0.605004" "plbxaamppj" "0.276890" "nojnedgabk" "0.833175" "ygrpkpstxq" "0.297792" "etsngvbrff" "0.952694" "qzcrpbvatq" "0.474358" "qbhdjhoohc" "0.067502" "btcvhacldb" "0.014993" "osncqcuest" "0.409761" "uzktwqcdeb" "0.335957" "jttqzbazgz" "0.615791" "qmxxfyuodo" "0.802366" "zuibhuihtz" "0.431484" "ctqxoyxbwc" "0.405363" "azkdbpnshy" "0.590182" "qwozutlufu" "0.916406" "yqmzmmzwpd" "0.493531" "yivxcecwlp" "0.436352" "lzzptujbjp" "0.743434" "ewoqykjbkc" "0.132159" "zxlbhyeckf" "0.302988" "nswjopvtqv" "0.543728" "gkmwutvars" "0.228101" "mupcilqfjg" "0.585761" "skstqdgbos" "0.306041" "kjqeujfkoh" "0.441690" "pvwvdaorrl" "0.920910" "pmytvtksfi" "0.666617" "dniplpxfof" "0.512864" "twuvkpjzzw" "0.600784" "aufhfrhccf" "0.106240" "ljinllovsw" "0.889183" "ywgeotcect" "0.010523" "ltvfnuuwil" "0.081719" "nnnxouavyp" "0.369352" "tglieutcis" "0.790975" "wabroeeoop" "0.431765" "vsvhjrymqc" "0.033449" "jhdcicttmm" "0.334186" "dlhjfafskj" "0.311725" "ffksbrtbfq" "0.735770" "lcdchjadll" "0.402876" "ijdgnlzprg" "0.013454" "znartcywze" "0.320563" "agswwrfabr" "0.859299" "euleuicawb" "0.237979" "aoqlctikzg" "0.084421" "idmjjbjvni" "0.540346" "fkdmuxraqf" "0.827762" "vyewicgjio" "0.264901" "rzanpefsfy" "0.249106" "pubqtzzzko" "0.641931" "btakuczlec" "0.028675" "hfjxrrsszf" "0.112206" "dthtfrqkce" "0.881211" "vnsufnurol" "0.158854" "hmdzsuuyrn" "0.657811" "shckmujxzo" "0.823770" "fmmammvdyj" "0.794376" "fhuptkhkzm" "0.920863" "qquwyuyvvw" "0.237467" "tdggmsxysk" "0.382295" "ysnndkycix" "0.164685" "ftyxhyfokj" "0.924193" "dmbarohbfj" "0.985108" "mallnshtok" "0.932159" "cszvzbrmoy" "0.948943" "stnfirydgi" "0.243979" "bxwvqvndcc" "0.729360" "wtzqqecgfy" "0.827464" "mkngszsxeu" "0.066282" "ncckxlmsvg" "0.832378" "pdjmftsmob" "0.546000" "vqgztpmzhz" "0.880249" "vvmaucizkv" "0.529144" "fnpdsuozxt" "0.599864" "gritvkzfgw" "0.575660" "wtcpliaxmk" "0.095307" "cqfnhujrbj" "0.428143" "osaekeukqx" "0.988758" "nepxmyiuhr" "0.438792" "lfkqrtxocm" "0.337112" "pgdhjrxhga" "0.029529" "wcpbfslakk" "0.817147" "cynhehkcxs" "0.796564" "trzqdcaqdw" "0.292661" "mxydilgynv" "0.296909" "lscjhgztom" "0.658885" "rqurawzebz" "0.291664" "pghbwbtfmk" "0.176822" "ckibsdtfff" "0.884684" "svvdufedug" "0.806829" "fjdjumschq" "0.960759" "ybcdthmgws" "0.806253" "ogtqmpnzie" "0.749828" "yjyffpgoop" "0.313174" "uwiqrvcqvu" "0.978051" "xepfvvcovk" "0.935539" "oxsdmrdbit" "0.949876" "rfxibyjmpg" "0.527448" "gwzqcetcji" "0.136049" "mkxysrkpug" "0.207709" "jjumoixniz" "0.302963" "pypepewjvq" "0.097174" "gcfcbjybkx" "0.982914" "ezgxjiwwig" "0.643767" "kjiqagynco" "0.789879" "urkkyscfti" "0.345265" "tsnawydcru" "0.657757" "sshbuxfljd" "0.849243" "fazsvkljef" "0.122817" "jfqxkxgqhj" "0.874860" "qxbqbfcgjp" "0.019772" "joijmgposs" "0.396742" "qocjpufxio" "0.317664" "xpkwqbfban" "0.417027" "saqilljaid" "0.436455" "qlvgfplbod" "0.689103" "aoydkdfrpe" "0.151562" "dxpepbctea" "0.004086" "jqurtadjro" "0.275095" "szupcnvvij" "0.975388" "nunpqugdit" "0.619831" "cmqraybrlw" "0.021593" "bnatichltp" "0.615263" "zuoqjiciij" "0.516554" "suhwnartid" "0.500129" "bhfmhanvxe" "0.970410" "qckueiqiwh" "0.310292" "hmwfncgzxg" "0.136794" "bhrvnadcdk" "0.537331" "bwjyghaztz" "0.845703" "hwuofuftlr" "0.062857" "xzbqjpzqlm" "0.148334" "rhkpfsuhoq" "0.903658" "ywlqbjqeug" "0.171792" "haxesjafmh" "0.607711" "ouroipthpq" "0.213063" "kdklhpxntt" "0.566853" "mhrvuemywb" "0.066576" "cpjveufsvk" "0.575035" "mszjkgsrio" "0.883155" "rtskokvklv" "0.326063" "kdcvbkrbsj" "0.497748" "pbfijwccjp" "0.096181" "gsvkmnluiz" "0.651896" "brwlqbfoat" "0.698481" "wzxdkpehwf" "0.241647" "hhbceuegvh" "0.335103" "ubwlcefgqb" "0.139593" "vlhtdpqavh" "0.043865" "wghyakzbit" "0.232605" "adfhfatarh" "0.280517" "wevfinjbqk" "0.240397" "scgjdkyetq" "0.661665" "ymwwctfodg" "0.406742" "sotsxznskx" "0.651442" "ckqebhazel" "0.954087" "dwzqowbrsd" "0.118853" "dclualrzqb" "0.859469" "ifiizdeong" "0.715490" "etcsjxoqab" "0.365077" "igehetokzq" "0.303267" "tuajnnqtcq" "0.187568" "mxpzuzrzuo" "0.447848" "oqmuhlruqy" "0.385352" "hvtlkrungk" "0.055211" "dygkzcpakt" "0.403664" "rnlaakgsrf" "0.314530" "yoblelzlkd" "0.082484" "mwmcwqzbld" "0.916300" "mgldvzleyy" "0.169185" "ahcaaodvgi" "0.972997" "erglflfnql" "0.188418" "behdxlfdho" "0.605785" "ikpikupjoi" "0.348162" "ylulwsnjay" "0.512359" "qcsxjrjcfc" "0.376004" "ollacusjzj" "0.312060" "ethxaycsil" "0.912136" "laepwenqmc" "0.629227" "eksvvoxziw" "0.473402" "ulepgommyy" "0.112999" "efhynoxlul" "0.141312" "vhjaphfdpj" "0.501631" "otclvmbilg" "0.622360" "ndltyojjxj" "0.560323" "ehnrizfmfo" "0.856890" "tqkprkoixe" "0.295874" "cvohdragtx" "0.144378" "emfjcnujqn" "0.013908" "bzursuzuei" "0.765880" "qmnxipsiga" "0.655198" "dxnprfawun" "0.921417" "umttshfkpk" "0.269042" "nrbfkysxaf" "0.426194" "xjksnqifds" "0.009747" "qatkvfuttq" "0.222498" "bqqohkuylc" "0.487539" "thmmmlqluk" "0.447940" "gnrmnwaxls" "0.757365" "usykkwszvh" "0.127757" "nnhrgirrtw" "0.114722" "sujbwndgwl" "0.320579" "pkvcbelpos" "0.028885" "fussukqrph" "0.898756" "bgtxhxkhvv" "0.440242" "ywiurvfbpg" "0.195203" "rakustfykw" "0.455870" "txhllnvudv" "0.038326" "smwbxeqbed" "0.636364" "rdsfcdvkqz" "0.602638" "nknlysgviv" "0.703795" "yzviqaobku" "0.517737" "rngtndwjyg" "0.896203" "jqmscuprwq" "0.758854" "bcwncpnibg" "0.497263" "rwrxxrnwtq" "0.810537" "fpmbbgiaao" "0.816854" "mshexjmkmn" "0.132051" "rhzpguhsws" "0.319074" "krxneqolle" "0.336648" "dozecfsvue" "0.607888" "jbzyfznpdn" "0.971581" "tjnbsybxws" "0.261454" "vpzsmbjkvy" "0.581137" "dewdgfrhos" "0.680898" "gcjruttnno" "0.999251" "uzaejrbwue" "0.158681" "jvekvvldai" "0.606900" "imexfccbxk" "0.986671" "exhjfssojj" "0.999539" "hjjxyybxiv" "0.548141" "mjifqzmtsd" "0.838391" "tbqidtevrl" "0.812230" "hjlhurakwh" "0.308053" "ughnpilqqm" "0.047394" "kfselnpkim" "0.852908" "vewfxcxkpf" "0.201866" "usjmfkopln" "0.126260" "yxsnreuepl" "0.246804" "flrsaczxzc" "0.835412" "aadzbodres" "0.293504" "bhwytqsafu" "0.708503" "lpahctqgna" "0.045136" "zwlhpcahwu" "0.601683" "kgirldeylz" "0.556444" "krtsiucvvu" "0.595704" "adlxahxsbq" "0.191964" "alokvrpbih" "0.572409" "mmcunsiwad" "0.551146" "dfdodbelzn" "0.441988" "ejlunxlwxn" "0.419999" "tlnkrncpwi" "0.037276" "jhocasnttw" "0.132050" "qslrwqmixc" "0.767421" "afamsavgsi" "0.697485" "ramoirrdyd" "0.245522" "hplvvuoscb" "0.506283" "dxufcyurjx" "0.614086" "dablvesuho" "0.085394" "ovqohpxjft" "0.343138" "qclkaeciey" "0.148648" "dgodkfjzos" "0.740439" "iobkwbwceu" "0.829028" "ocmtsfpsgh" "0.472991" "ubtiscdgrn" "0.349979" "fsoardckcw" "0.094781" "sstqpivwip" "0.846751" "wzuhzzdezi" "0.746618" "tmyuncyoyd" "0.338101" "ygoiannoht" "0.538581" "zkbqvttlzy" "0.306575" "bwizktcwmb" "0.560909" "dcjlwhfstw" "0.075409" "pheajlhymx" "0.142967" "ysntbzffxq" "0.385727" "rgtondctpo" "0.825053" "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' + - '"ZADD" "zset:1000" "0.645108" "iehxaaneev" "0.793870" "icatrrbcjs" "0.558445" + "aieekmivcb" "0.712596" "xwtwtwmbgu" "0.138467" "ctnaggdbru" "0.319593" "nouncgkoik" + "0.193744" "naggqdxcjm" "0.238679" "qjrhtqgwjc" "0.308197" "ihealvwnxb" "0.903443" + "hggqmlgwha" "0.210797" "pjdundsxrd" "0.706360" "zcffhzusrl" "0.392186" "hmcpcrjumm" + "0.392543" "iiissmznfe" "0.024854" "caaqjozcqh" "0.169284" "ooeswhfdnj" "0.545674" + "txgjxzovte" "0.943467" "xpcpytommm" "0.130763" "icqjxcermo" "0.167315" "vqtixjkcbb" + "0.629596" "wwfbpjatrp" "0.413113" "vtaiyncmyg" "0.457128" "aslibwggrp" "0.105554" + "bpvbnmpekh" "0.771857" "gaotvjctjh" "0.306570" "diwmfuckel" "0.939014" "dgcesswkvc" + "0.905870" "cflarkquuv" "0.063393" "lqqivzlppd" "0.582370" "iwqanwtvcd" "0.031539" + "nvonwipkta" "0.720765" "rcwbzvwbva" "0.315533" "sbrjnwxdip" "0.688803" "kuiumwomxi" + "0.890704" "qgobfhgspy" "0.334490" "wmvhvwnowp" "0.673452" "uewpgskfpu" "0.819089" + "cvnlzjdfgf" "0.846270" "mhbfsuaovv" "0.652710" "anmcogawkg" "0.778304" "xsueeljljp" + "0.771838" "padscbypdo" "0.177771" "tjnjhejnju" "0.793709" "dxdngrmypg" "0.799628" + "itmekixthv" "0.017343" "giubyhvaav" "0.004991" "bbfvuialin" "0.580003" "tctgzmjads" + "0.405932" "mvfnirshbd" "0.851340" "asbtvfzien" "0.226860" "vqashxkrik" "0.391362" + "gazojexans" "0.287772" "wybmlpqblt" "0.191989" "mobwpcyxuk" "0.224179" "sjbaedopjb" + "0.202665" "axhoxkubdv" "0.968856" "rqiyxwpuyv" "0.483072" "jpphbjtbrh" "0.991346" + "mvmsikqfxu" "0.350243" "ltkauvxggz" "0.588627" "rwllkdzxrj" "0.039496" "hhwvslfxmf" + "0.700638" "cgpvvnbvlk" "0.313291" "fgcehqgsso" "0.343576" "oownjpxrov" "0.192722" + "umwunfzsvo" "0.273418" "jzceexkqam" "0.968219" "arqqmfmmbz" "0.394788" "plqbwsiuzw" + "0.378863" "rhnkzlsjtk" "0.605956" "eioxaswdee" "0.438622" "rspghuhpbp" "0.356931" + "zexblqeora" "0.009694" "stttkrbfqs" "0.620955" "rmqxtqcxua" "0.713440" "emdwpvauyc" + "0.999344" "olezxlliej" "0.361739" "imnjbkmsls" "0.308247" "thqttakyzy" "0.424859" + "jjlefkekuw" "0.036802" "qgasrnjrld" "0.160174" "whdftyqojv" "0.725586" "snepgcispg" + "0.004061" "ipubipttcb" "0.702881" "ocesqguvym" "0.206341" "qwxzqlqter" "0.831086" + "xmknbbmdbf" "0.353833" "spoqshzjoi" "0.029532" "slskrnekbc" "0.389068" "gybxnvwchp" + "0.520218" "uvlswctlhx" "0.872011" "ujybghjfnf" "0.299529" "lgqazzajpx" "0.153536" + "yhlalzusch" "0.611873" "jeazfmhrcb" "0.795973" "vealtjlqyc" "0.284121" "ejzwnidqwr" + "0.429848" "nifzrybfuh" "0.133500" "qlorevyltp" "0.870113" "wvdmobfisx" "0.240635" + "aqyfvxyjqr" "0.903983" "zybosgbtxt" "0.305875" "bvvoibkfrt" "0.132423" "iziwqojsoq" + "0.041522" "qpffifpdiz" "0.085682" "ocoflktdhp" "0.159059" "ncabqesziv" "0.650525" + "zuccleayil" "0.354068" "pfvfxrrfhl" "0.546089" "rdipvyeqoi" "0.452595" "yrsizkbbwz" + "0.723931" "iwuuxdactm" "0.595940" "mbewprqunw" "0.933906" "ajdkqflpen" "0.696150" + "wmyphdckda" "0.841744" "lxoaezrdxs" "0.461889" "jqqogagqni" "0.141414" "yhdgqenmwv" + "0.347382" "wrrgxxkxkc" "0.398727" "omwbgglqsp" "0.443000" "ymqxhmnidz" "0.765094" + "nqwjivcosg" "0.986056" "tctrsxgnrc" "0.576107" "ndwiompimr" "0.349571" "cmhkstsjok" + "0.734824" "jfbgmhtjke" "0.929214" "gdlztbhpeq" "0.102103" "kmifjielrw" "0.796464" + "khkkfmzkow" "0.044303" "akzsgaeqon" "0.349244" "ozpyyaznsh" "0.282090" "dvgqwzignk" + "0.124180" "lawrpikwsk" "0.145508" "qnqzibcmip" "0.014177" "jlghqxtvok" "0.271586" + "orqqevpmca" "0.941327" "yrvmdhnnfc" "0.964838" "ajkgxmtamu" "0.681722" "mcbuftndrr" + "0.524113" "caxgjftjyj" "0.432128" "bzwxqcpftf" "0.167489" "krfosgrmjb" "0.309948" + "ilkuddrdvh" "0.910226" "byrkeibrfb" "0.382510" "bpnfopinub" "0.152318" "gbeizdzdyb" + "0.570025" "vgfgbsbnwy" "0.290087" "zbfeyptemz" "0.376504" "wcouaiatsu" "0.071776" + "omeatkwwtc" "0.029506" "cbjovvgqqy" "0.484980" "ofykgotycd" "0.043870" "bnxtlmiwup" + "0.751689" "uqvzpcvugl" "0.419781" "rwfykeeqgx" "0.087991" "nubsytpfao" "0.808363" + "xeyxlxiqch" "0.187833" "rrrfhnclbv" "0.864568" "mnsaklzgob" "0.725490" "zujobawsct" + "0.204763" "pcuaesomdc" "0.223025" "lftmqoxhfc" "0.506344" "fgygwdazbm" "0.261202" + "maxylirjgh" "0.410370" "jgaieawkcu" "0.260167" "ffrviosqzo" "0.250480" "fiafoggekm" + "0.563103" "wksgvbkbyw" "0.974324" "nmguhcygct" "0.259207" "bekchebgys" "0.783447" + "hmnaoeeasz" "0.764739" "zknlteeaxq" "0.828842" "qzxxwlfeki" "0.464344" "knycrcrsbm" + "0.984059" "izizuzzjuv" "0.384700" "blujwnyluy" "0.930637" "zrwgpknaop" "0.656346" + "fffreqppjj" "0.051069" "alfftdxaxc" "0.320961" "ywmqoaztmy" "0.279848" "lbjarnpxhh" + "0.294326" "ecsburyjhh" "0.806331" "jetamrlglx" "0.208517" "ruxsmttpak" "0.257535" + "hxbmykkugi" "0.821400" "jzstgleeby" "0.546144" "bovkdabcdo" "0.226768" "jhkdwtqvwl" + "0.398483" "iqbyikqjmx" "0.125020" "snomfrutha" "0.264133" "eiziligjfr" "0.043614" + "bqoabrqwwj" "0.411120" "utymwhxigo" "0.850358" "bstezdkmig" "0.485876" "csjfbpjyzq" + "0.528742" "yzrdbalexf" "0.110554" "uidvmrqyjd" "0.751337" "yjhypaonqq" "0.074346" + "gktcjcfxbb" "0.020820" "lqxpnplleo" "0.234692" "vfcpevtekf" "0.157122" "xglrugpjkt" + "0.174485" "fidsuuizcf" "0.939223" "gdqgmwxkmt" "0.436623" "ghepftfjgk" "0.071851" + "mjwrbndexu" "0.847464" "shlwywnxpk" "0.646937" "wlogkzxkpo" "0.532516" "pwgjoppmgc" + "0.592209" "ossjrvqmaa" "0.598701" "rnvhfxbuoi" "0.443002" "lydebbpmfb" "0.279549" + "sdnkjddyut" "0.877963" "zewylkylsy" "0.080681" "rnfodijavx" "0.696470" "ukdnaklmcp" + "0.102279" "tcpwkimype" "0.881048" "bgcoyoduda" "0.415925" "gpodilvrnm" "0.848481" + "srkvjhetmj" "0.040637" "ltgidziwzm" "0.244640" "tnratexlre" "0.075067" "tfonhwnuxj" + "0.034629" "rpyroriegs" "0.887395" "rjrtvpntke" "0.685654" "vvmkjgajwa" "0.400525" + "nywteueaig" "0.435228" "vklwhyzqhk" "0.060039" "afzlyodwiz" "0.510563" "ropuqidkxv" + "0.048751" "roczxpuisd" "0.269116" "mhxojehvxx" "0.988874" "dqqfcdugde" "0.240165" + "qtpcwuafar" "0.750459" "uvqtefqdhk" "0.828087" "tstbluhyhj" "0.861661" "kxggjpatkd" + "0.351980" "wgtjxahmef" "0.440586" "tdceweesxh" "0.897607" "qzlfnntjar" "0.564519" + "ljklggibcy" "0.372248" "nwnyjkugcf" "0.098880" "qmhyoyctod" "0.545321" "bwsdzrxzse" + "0.996184" "kmcwshsbye" "0.819622" "ifhkjgmxrd" "0.034752" "lnuuootxmp" "0.243929" + "yfdsmhtria" "0.317712" "pupmdjgyed" "0.706819" "aryiyaltqw" "0.755626" "eyhgspybnr" + "0.066966" "babfjxxabw" "0.681568" "qhhhipzncq" "0.289070" "rwhzzytdsq" "0.040067" + "rbdabbmnrf" "0.325428" "sfuvzzxbxq" "0.377881" "fgjnsosfrp" "0.737437" "llimzyabsp" + "0.035594" "ufdxqlonpg" "0.343033" "mjlpvuoghe" "0.189450" "dyzedskzkq" "0.671180" + "dbcxnsiacw" "0.679152" "fsuovvpgng" "0.919742" "tvlckdoyfe" "0.191694" "pkehotsmka" + "0.219460" "nryvfijxhj" "0.188159" "yqvkykgjbe" "0.564495" "jlgepeyhpc" "0.238642" + "nwywtydqew" "0.751883" "cakvxrdpmj" "0.894821" "eaetplspga" "0.630431" "lrhrkuyzry" + "0.358602" "ksppwhhqzj" "0.489667" "skkawcmqqt" "0.778531" "mkrrypcfzy" "0.101774" + "tkgihmsrha" "0.268255" "oqdlpaubsc" "0.577108" "mdcwoblmkl" "0.260332" "rjrptuhkav" + "0.516929" "wvsnfinuil" "0.941773" "aexxjlgwuo" "0.196086" "kohpozxkhl" "0.137598" + "qxxinxaqxn" "0.378124" "pltsnzqvpi" "0.579231" "mcojdazpfq" "0.240701" "xkvgnzjgrm" + "0.898586" "fzzcioobeb" "0.264136" "tqblforkpa" "0.448451" "skbzfbeziu" "0.051773" + "vyiqkfoics" "0.536133" "lxzdcbveuy" "0.502064" "hskkmrluuf" "0.698222" "ltomuspfzc" + "0.590610" "fmpdixcckx" "0.057498" "ukprrucywq" "0.660543" "vldwfdnicm" "0.826104" + "fzatoyblsr" "0.754438" "wbouqpojzl" "0.117783" "pmaagvqldo" "0.533611" "wxjdgbugeu" + "0.025197" "nlqtadqinl" "0.760125" "jgcqryhsvk" "0.551085" "uboipezuni" "0.203084" + "tmkoxwdgpx" "0.415950" "xgfzndhodu" "0.271285" "vuqlqdpfdn" "0.385063" "zorzyqtjtr" + "0.537420" "uedehyieof" "0.972732" "jphvxuqipp" "0.733064" "faxedqgskm" "0.342786" + "cdghgcsoth" "0.903818" "qwowxqzrkz" "0.653952" "roqzbzpbbt" "0.768345" "sxcihybfci" + "0.892237" "pbxrbaxnor" "0.764531" "geizujxrkg" "0.620438" "beqsnrixhl" "0.521196" + "llamjvxyqo" "0.699100" "yzcspfvcot" "0.459957" "ubghghklvj" "0.297416" "giswndixdf" + "0.086339" "kgopxvsdah" "0.000782" "tocawprsxz" "0.426201" "ctusqixohm" "0.339036" + "hklchdenoe" "0.276883" "btgeubdzbb" "0.860669" "cjcrpmggtu" "0.147353" "ngcxqjjpdm" + "0.875443" "vorgqhmaoq" "0.923510" "bgcnzgcmza" "0.087182" "pyjpxqnavq" "0.634058" + "tdmjyuitvv" "0.963838" "igwekdegcw" "0.235680" "spogjykkfs" "0.675610" "vlcnbfqvox" + "0.661566" "tzhjrlfvfp" "0.317132" "ebhhhgabjd" "0.118838" "evuxmkrrfl" "0.246357" + "pxzkuasjek" "0.450004" "hnnfmyurhx" "0.623882" "yzutuazhmh" "0.331435" "eovsizpcjp" + "0.218206" "dfemamyevk" "0.935043" "evjrybtwww" "0.820919" "audguegpmo" "0.966038" + "nwybjbhgep" "0.748183" "nrencopzqn" "0.287079" "hyikggurti" "0.375950" "xwxwosqkhm" + "0.388941" "kcbotffyca" "0.676492" "xhspgwheck" "0.782514" "rkwlgzhvvy" "0.628528" + "tumnalubch" "0.672107" "dhfundvlpn" "0.661732" "qsxfnsicrx" "0.975140" "gamcdtywne" + "0.608014" "asidljmwgb" "0.897256" "gygftrsdbm" "0.349942" "ybckvbeoib" "0.932954" + "anznywecwk" "0.726428" "cgmivhyskk" "0.843359" "xkiuuciwrn" "0.023708" "lyhqvxolfw" + "0.822799" "eafrzhdhhq" "0.530864" "dbtbtvkqss" "0.848648" "hvxefqtmqu" "0.866428" + "eraxdyjftw" "0.446144" "eyrbqexkff" "0.048181" "dxtzxeguoi" "0.683328" "owjfgjqqjc" + "0.489625" "pisgqibyae" "0.970240" "nsdvirehqh" "0.583183" "wgtrwefdsw" "0.174619" + "mamtueyrqn" "0.222798" "wiqhmhkiel" "0.704784" "cnngbbpowp" "0.837632" "curhymvwsx" + "0.256654" "uttazeawix" "0.701426" "farwqgfyjf" "0.463106" "mivctgaajt" "0.534385" + "qchpfcigwa" "0.538479" "lspvrnxnjo" "0.571538" "bzjzucrypq" "0.599488" "pyrpwxalpc" + "0.924799" "rncdgqxqfq" "0.315947" "nenhiiibwx" "0.909998" "arqfxfqkzh" "0.405248" + "fpdflprzvn" "0.674952" "cuuytorpnp" "0.955493" "lfojnetxdc" "0.692204" "uqbpcvkipa" + "0.991647" "pribqncfuf" "0.597850" "xbvbujurqw" "0.498266" "expefhkisx" "0.231363" + "wwowdvybjj" "0.357729" "qsoiwsugdv" "0.401551" "ntmgbzaivy" "0.230953" "kjblkrvknt" + "0.707000" "xkaailrpns" "0.246097" "muocqqypmt" "0.720597" "dspznsgszk" "0.147380" + "gkneclxnnt" "0.753306" "higdkhodzy" "0.003853" "csqcfxyzsy" "0.782493" "iyeiercbxr" + "0.732835" "hjekcxfyds" "0.644764" "ahjawbsqcw" "0.038385" "kapxglqccs" "0.229066" + "ygbfgfefac" "0.791507" "qpzkuxsipr" "0.991541" "kmqlwfbsex" "0.698087" "vwayaqmtid" + "0.972772" "ghtoyhrfxh" "0.890508" "gcsswbksnc" "0.949597" "snpuvnebpy" "0.107435" + "mugdxqnjxj" "0.618836" "vkqalcokst" "0.433195" "ltghdkluqq" "0.448407" "mumhqarhgg" + "0.135863" "gbjzsedhag" "0.564412" "hvfprkjlbc" "0.228627" "jqgtbgbybq" "0.826784" + "ydqppngxvh" "0.990663" "iamjlqlznh" "0.361827" "zzenkvuesw" "0.922425" "rmdayyptch" + "0.150657" "ripecixnpr" "0.174850" "pkgpjwyfbh" "0.949969" "ortxlvmdoc" "0.857772" + "rcaatkjyur" "0.649739" "qqfnugftmr" "0.332970" "bsavjyaksg" "0.801014" "pudgkcbwdx" + "0.499720" "ynnhyctikq" "0.782441" "ekjgqnjxyl" "0.495010" "kbnjiilaqd" "0.186830" + "cvmicoarvv" "0.439088" "iibgagtkpg" "0.715350" "jznackjcrd" "0.289687" "symbgeyple" + "0.333963" "xlmvatfsly" "0.958199" "njmufqrykx" "0.541363" "nbizrabfuo" "0.933496" + "amuwlfaxwv" "0.714080" "ahfktrqmgh" "0.100087" "kdodndexvr" "0.149844" "isqymcuffe" + "0.706632" "yzmodbpsnb" "0.847058" "jlpobgvouj" "0.951551" "eqiukbyscu" "0.068236" + "mqqrgbacfa" "0.490453" "mmqblvrscy" "0.235491" "fiugzrozky" "0.377347" "nvkfnfzoki" + "0.127271" "vjihaakiof" "0.795512" "apyzwvajot" "0.348210" "lxsinouutc" "0.567777" + "ystnkbogee" "0.477872" "oeawjlqnyg" "0.623260" "hyanpicfan" "0.664609" "gtqrsktbaa" + "0.320234" "fffylsswky" "0.096201" "zdmgjjyukl" "0.421767" "ffcqkkzllx" "0.421724" + "ogyvxbgcwi" "0.195373" "dtkfydidli" "0.127873" "jccorylnjg" "0.049319" "myzjxvtvjh" + "0.808586" "dtuhvpszzt" "0.320150" "kamgfgbxel" "0.370480" "nraylduhut" "0.265837" + "abinkgshoi" "0.975716" "ghqwxaqlef" "0.502953" "ftnbjymlll" "0.310925" "pzrchtwaaw" + "0.567703" "wdqygrxkya" "0.728237" "snunzlgfkd" "0.896651" "nkyuframnm" "0.867424" + "rxvhmzvbcv" "0.063563" "rrzcqyzdzf" "0.629553" "weqhfkosif" "0.462773" "ctgwmawlgl" + "0.718046" "kpzmuwqbnt" "0.906977" "klaeknlbrm" "0.264978" "cejkfhuykf" "0.619446" + "jhibapuhga" "0.061965" "wemmvswznk" "0.061592" "vdaebbupfe" "0.689222" "cglxptkcsz" + "0.174769" "quemrlmwod" "0.898675" "ydigxptqbl" "0.948273" "gjutzwoxlf" "0.075856" + "vefgwelnfo" "0.746864" "dcepfcdddn" "0.965491" "qkyfpamste" "0.633385" "gbkqhfumyu" + "0.737572" "iwapedwyle" "0.754054" "ormdblyhhn" "0.932719" "dtjljhzqcm" "0.767225" + "pthacnunjj" "0.649379" "xzswnnldvs" "0.216633" "muhewfzihs" "0.639269" "fuftndsnim" + "0.909138" "xyxmlrdbui" "0.508704" "jwvqixjhho" "0.582770" "nfucelqjfe" "0.089356" + "glynpmsjcf" "0.838816" "avchkjnlwm" "0.908984" "ylxiwiesps" "0.043408" "sadqcfniau" + "0.886747" "qgdgujdvtg" "0.661810" "gfhrrjczsp" "0.907605" "dpauqcpgyi" "0.728562" + "ppdxnadmje" "0.330399" "kqzjnkdlxd" "0.082110" "yhejmjwwni" "0.711500" "xsgcuvxzor" + "0.866779" "fswhywqxhy" "0.421784" "rtnhivnxtb" "0.497701" "veegnotgmj" "0.518567" + "tsmzfswaxo" "0.005142" "ifpfyncdfe" "0.249159" "vpqlxtfkjz" "0.741728" "twmbtaxdro" + "0.139049" "cvnnitrrow" "0.070475" "erahoeivfw" "0.488547" "buzhjxsbkm" "0.741781" + "nmtmjmhmdl" "0.514985" "fqtktfghcv" "0.866908" "iqzxblqkeo" "0.505662" "qydrgilxxt" + "0.773945" "beicnwdryg" "0.668057" "htawohddyn" "0.675705" "jbqibabrmv" "0.784213" + "aquymkrswt" "0.845563" "irrovfyshb" "0.239145" "outdlyeqvq" "0.083427" "ofcurtthcs" + "0.865472" "xfxlervrgn" "0.410198" "myrrmvflyw" "0.757061" "lywsezpzgf" "0.634949" + "jvtalmlkng" "0.435516" "ghwcrdlbjj" "0.228243" "rqkcyxiwhz" "0.337555" "gzekysdunp" + "0.252513" "qtewhixedb" "0.767732" "bzfzxzecrs" "0.092367" "whsxmqffqg" "0.920685" + "dmxcbvzrxg" "0.238809" "dhzgpwewsx" "0.569625" "flvftlpbjq" "0.681014" "wxswusqpeo" + "0.558549" "aeafusfzdn" "0.076310" "gayysuldha" "0.343809" "nvqfyljbef" "0.131309" + "ocgjeuljxf" "0.709863" "cnbqnvxmjp" "0.339533" "sotbjzlsvz" "0.818601" "cvbbbdzmie" + "0.244589" "dpyjoihqrs" "0.924136" "ivinvxopgz" "0.004308" "zdulfflfqx" "0.113676" + "iosqxoobrk" "0.009689" "kjeevccyof" "0.975034" "jigyicdeft" "0.351974" "sqwhsgboef" + "0.575486" "bvurseeqmh" "0.701469" "lbxvlwzony" "0.108482" "tqqmmvwact" "0.639351" + "keklddczkd" "0.361829" "kbfqdppnfa" "0.342636" "qjwrnhooax" "0.365558" "koujdppfua" + "0.866551" "xrvonyieqa" "0.907022" "ccnbldglgl" "0.327711" "egmgddriry" "0.657241" + "gfdzgxfdcg" "0.080151" "eirhwkdgfq" "0.599621" "adlryhdbpr" "0.645347" "ezbiwqnabg" + "0.216803" "dplonqlliz" "0.436938" "aiqqyusnuv" "0.630922" "fmyleefltp" "0.387614" + "mjgvtydjtm" "0.239791" "trwzipsers" "0.686253" "wvlvshnhmx" "0.710512" "nugjvhftma" + "0.937218" "yafipxfsip" "0.887614" "shgetgsird" "0.730346" "cblsafugqk" "0.940470" + "spdyueanru" "0.203652" "wjhaavxfge" "0.358953" "otadcihtmd" "0.428536" "irlduoinie" + "0.203054" "asretszbav" "0.686840" "ekponflaeq" "0.116664" "btxehrokkw" "0.841981" + "ctkwlhmgfz" "0.461922" "emfqsjraia" "0.729528" "ncremxgfdb" "0.747886" "dnvwyhyhsn" + "0.314724" "gjiwldcfqh" "0.915762" "kluswgtjsf" "0.630900" "uvbtcgtopw" "0.734056" + "jjczogqdwz" "0.954115" "iesbitdnjd" "0.922486" "glwrmjpotx" "0.330378" "nmfihtnkel" + "0.752510" "tvzacklhdz" "0.826313" "xtwlklqdna" "0.190858" "rfhlttsuqy" "0.286279" + "nlxwjmzwln" "0.334573" "vjjozwrovk" "0.266818" "gqybtjuhvq" "0.477130" "phfuspevwk" + "0.424753" "vzcclamtun" "0.334857" "gbazuqnmit" "0.926985" "zmmwzkjrjl" "0.273126" + "xigznrdgqy" "0.872996" "yufagalzhk" "0.973287" "kngwkkzwts" "0.642007" "fuipidfbjt" + "0.640561" "rwzijctxzs" "0.547026" "fhobhpwwkp" "0.976843" "nqxdrqigvf" "0.889949" + "zsikdzycyt" "0.955177" "inboyxgoqa" "0.570888" "rsivptwulz" "0.069483" "eqaxrccwjq" + "0.476052" "cctlfgicpv" "0.950332" "gdozstnglr" "0.523253" "wovoupawzt" "0.396718" + "nunchscyqc" "0.124266" "socoxaegfa" "0.847380" "qbpmtomqpu" "0.157463" "ngwifjdpha" + "0.444848" "ztjuqomjck" "0.834028" "hrhiqcarju" "0.242287" "paitaeqrpb" "0.601139" + "umoicweaab" "0.937897" "xekxarmwcq" "0.318636" "aejnvyfdst" "0.723443" "mlznoaajqq" + "0.216821" "wjibkklezg" "0.418684" "jxiewthqls" "0.261108" "sldzewoxas" "0.123533" + "fvemodlpgz" "0.541682" "fgzwwaedjy" "0.327706" "twpiiaedpc" "0.286415" "brrlblrxwa" + "0.354345" "fojjpqmbck" "0.162167" "rhzqdtxucc" "0.553529" "fzsoiryhfn" "0.995917" + "zavrjnezrf" "0.015279" "uxvibjduto" "0.179399" "puvgjfjyaf" "0.592098" "jybzltmwrs" + "0.786701" "xftfzsoiwc" "0.632713" "kkrxiaiife" "0.023264" "nnfxoqebys" "0.639560" + "wrqnytptzm" "0.931933" "powzkcrtvv" "0.102203" "gefoharnza" "0.893614" "viwarrumob" + "0.548257" "pkcqdokojd" "0.804829" "kzuywkxlku" "0.252774" "iijjcabgak" "0.105055" + "nxllkzroin" "0.261153" "uesalivsis" "0.153373" "aqlapmghln" "0.538430" "pfaytznuaa" + "0.706254" "ucxeoqcssr" "0.506384" "tivnqailcl" "0.550096" "dtgjnddwch" "0.228131" + "suahxaebee" "0.693047" "ubzgvzputq" "0.255977" "tqjpijliii" "0.320788" "mxapzqqqsw" + "0.392916" "qvpuudyuks" "0.807373" "kprzbyngsw" "0.579009" "dflxukffgl" "0.639254" + "xqvjnlpssl" "0.509891" "wvrlxfoxff" "0.079358" "tqpqihwjtl" "0.174471" "vxrtzngznb" + "0.354177" "nahweurftw" "0.735534" "nehqnkqnld" "0.760483" "yfvwesgulw" "0.392384" + "zejhycldyy" "0.545858" "cbtpbbfrdd" "0.509818" "oglqutqfcx" "0.171142" "jhctncrzlw" + "0.366168" "wqsqzzbqhm" "0.547857" "mkbkflixkr" "0.503947" "nbkaxrojqq" "0.081083" + "erqgyscser" "0.370359" "owovlhorvw" "0.309822" "rofnkytnhm" "0.231350" "yajpmxmuwz" + "0.394314" "gviypfayfm" "0.784763" "ulnnuwyptq" "0.089208" "ddpgrvwowd" "0.572023" + "bweysooxiv" "0.646567" "pnnzqcutoq" "0.839930" "tyephutkmb" "0.264179" "nszbrpweoz" + "0.128647" "gehuriygwq" "0.659204" "vpehhmoxva" "0.491950" "dpkiubfzbx" "0.384848" + "wgtmckqknh" "0.188043" "xeurpmfdmo" "0.418849" "nbwksmwxpx" "0.605004" "plbxaamppj" + "0.276890" "nojnedgabk" "0.833175" "ygrpkpstxq" "0.297792" "etsngvbrff" "0.952694" + "qzcrpbvatq" "0.474358" "qbhdjhoohc" "0.067502" "btcvhacldb" "0.014993" "osncqcuest" + "0.409761" "uzktwqcdeb" "0.335957" "jttqzbazgz" "0.615791" "qmxxfyuodo" "0.802366" + "zuibhuihtz" "0.431484" "ctqxoyxbwc" "0.405363" "azkdbpnshy" "0.590182" "qwozutlufu" + "0.916406" "yqmzmmzwpd" "0.493531" "yivxcecwlp" "0.436352" "lzzptujbjp" "0.743434" + "ewoqykjbkc" "0.132159" "zxlbhyeckf" "0.302988" "nswjopvtqv" "0.543728" "gkmwutvars" + "0.228101" "mupcilqfjg" "0.585761" "skstqdgbos" "0.306041" "kjqeujfkoh" "0.441690" + "pvwvdaorrl" "0.920910" "pmytvtksfi" "0.666617" "dniplpxfof" "0.512864" "twuvkpjzzw" + "0.600784" "aufhfrhccf" "0.106240" "ljinllovsw" "0.889183" "ywgeotcect" "0.010523" + "ltvfnuuwil" "0.081719" "nnnxouavyp" "0.369352" "tglieutcis" "0.790975" "wabroeeoop" + "0.431765" "vsvhjrymqc" "0.033449" "jhdcicttmm" "0.334186" "dlhjfafskj" "0.311725" + "ffksbrtbfq" "0.735770" "lcdchjadll" "0.402876" "ijdgnlzprg" "0.013454" "znartcywze" + "0.320563" "agswwrfabr" "0.859299" "euleuicawb" "0.237979" "aoqlctikzg" "0.084421" + "idmjjbjvni" "0.540346" "fkdmuxraqf" "0.827762" "vyewicgjio" "0.264901" "rzanpefsfy" + "0.249106" "pubqtzzzko" "0.641931" "btakuczlec" "0.028675" "hfjxrrsszf" "0.112206" + "dthtfrqkce" "0.881211" "vnsufnurol" "0.158854" "hmdzsuuyrn" "0.657811" "shckmujxzo" + "0.823770" "fmmammvdyj" "0.794376" "fhuptkhkzm" "0.920863" "qquwyuyvvw" "0.237467" + "tdggmsxysk" "0.382295" "ysnndkycix" "0.164685" "ftyxhyfokj" "0.924193" "dmbarohbfj" + "0.985108" "mallnshtok" "0.932159" "cszvzbrmoy" "0.948943" "stnfirydgi" "0.243979" + "bxwvqvndcc" "0.729360" "wtzqqecgfy" "0.827464" "mkngszsxeu" "0.066282" "ncckxlmsvg" + "0.832378" "pdjmftsmob" "0.546000" "vqgztpmzhz" "0.880249" "vvmaucizkv" "0.529144" + "fnpdsuozxt" "0.599864" "gritvkzfgw" "0.575660" "wtcpliaxmk" "0.095307" "cqfnhujrbj" + "0.428143" "osaekeukqx" "0.988758" "nepxmyiuhr" "0.438792" "lfkqrtxocm" "0.337112" + "pgdhjrxhga" "0.029529" "wcpbfslakk" "0.817147" "cynhehkcxs" "0.796564" "trzqdcaqdw" + "0.292661" "mxydilgynv" "0.296909" "lscjhgztom" "0.658885" "rqurawzebz" "0.291664" + "pghbwbtfmk" "0.176822" "ckibsdtfff" "0.884684" "svvdufedug" "0.806829" "fjdjumschq" + "0.960759" "ybcdthmgws" "0.806253" "ogtqmpnzie" "0.749828" "yjyffpgoop" "0.313174" + "uwiqrvcqvu" "0.978051" "xepfvvcovk" "0.935539" "oxsdmrdbit" "0.949876" "rfxibyjmpg" + "0.527448" "gwzqcetcji" "0.136049" "mkxysrkpug" "0.207709" "jjumoixniz" "0.302963" + "pypepewjvq" "0.097174" "gcfcbjybkx" "0.982914" "ezgxjiwwig" "0.643767" "kjiqagynco" + "0.789879" "urkkyscfti" "0.345265" "tsnawydcru" "0.657757" "sshbuxfljd" "0.849243" + "fazsvkljef" "0.122817" "jfqxkxgqhj" "0.874860" "qxbqbfcgjp" "0.019772" "joijmgposs" + "0.396742" "qocjpufxio" "0.317664" "xpkwqbfban" "0.417027" "saqilljaid" "0.436455" + "qlvgfplbod" "0.689103" "aoydkdfrpe" "0.151562" "dxpepbctea" "0.004086" "jqurtadjro" + "0.275095" "szupcnvvij" "0.975388" "nunpqugdit" "0.619831" "cmqraybrlw" "0.021593" + "bnatichltp" "0.615263" "zuoqjiciij" "0.516554" "suhwnartid" "0.500129" "bhfmhanvxe" + "0.970410" "qckueiqiwh" "0.310292" "hmwfncgzxg" "0.136794" "bhrvnadcdk" "0.537331" + "bwjyghaztz" "0.845703" "hwuofuftlr" "0.062857" "xzbqjpzqlm" "0.148334" "rhkpfsuhoq" + "0.903658" "ywlqbjqeug" "0.171792" "haxesjafmh" "0.607711" "ouroipthpq" "0.213063" + "kdklhpxntt" "0.566853" "mhrvuemywb" "0.066576" "cpjveufsvk" "0.575035" "mszjkgsrio" + "0.883155" "rtskokvklv" "0.326063" "kdcvbkrbsj" "0.497748" "pbfijwccjp" "0.096181" + "gsvkmnluiz" "0.651896" "brwlqbfoat" "0.698481" "wzxdkpehwf" "0.241647" "hhbceuegvh" + "0.335103" "ubwlcefgqb" "0.139593" "vlhtdpqavh" "0.043865" "wghyakzbit" "0.232605" + "adfhfatarh" "0.280517" "wevfinjbqk" "0.240397" "scgjdkyetq" "0.661665" "ymwwctfodg" + "0.406742" "sotsxznskx" "0.651442" "ckqebhazel" "0.954087" "dwzqowbrsd" "0.118853" + "dclualrzqb" "0.859469" "ifiizdeong" "0.715490" "etcsjxoqab" "0.365077" "igehetokzq" + "0.303267" "tuajnnqtcq" "0.187568" "mxpzuzrzuo" "0.447848" "oqmuhlruqy" "0.385352" + "hvtlkrungk" "0.055211" "dygkzcpakt" "0.403664" "rnlaakgsrf" "0.314530" "yoblelzlkd" + "0.082484" "mwmcwqzbld" "0.916300" "mgldvzleyy" "0.169185" "ahcaaodvgi" "0.972997" + "erglflfnql" "0.188418" "behdxlfdho" "0.605785" "ikpikupjoi" "0.348162" "ylulwsnjay" + "0.512359" "qcsxjrjcfc" "0.376004" "ollacusjzj" "0.312060" "ethxaycsil" "0.912136" + "laepwenqmc" "0.629227" "eksvvoxziw" "0.473402" "ulepgommyy" "0.112999" "efhynoxlul" + "0.141312" "vhjaphfdpj" "0.501631" "otclvmbilg" "0.622360" "ndltyojjxj" "0.560323" + "ehnrizfmfo" "0.856890" "tqkprkoixe" "0.295874" "cvohdragtx" "0.144378" "emfjcnujqn" + "0.013908" "bzursuzuei" "0.765880" "qmnxipsiga" "0.655198" "dxnprfawun" "0.921417" + "umttshfkpk" "0.269042" "nrbfkysxaf" "0.426194" "xjksnqifds" "0.009747" "qatkvfuttq" + "0.222498" "bqqohkuylc" "0.487539" "thmmmlqluk" "0.447940" "gnrmnwaxls" "0.757365" + "usykkwszvh" "0.127757" "nnhrgirrtw" "0.114722" "sujbwndgwl" "0.320579" "pkvcbelpos" + "0.028885" "fussukqrph" "0.898756" "bgtxhxkhvv" "0.440242" "ywiurvfbpg" "0.195203" + "rakustfykw" "0.455870" "txhllnvudv" "0.038326" "smwbxeqbed" "0.636364" "rdsfcdvkqz" + "0.602638" "nknlysgviv" "0.703795" "yzviqaobku" "0.517737" "rngtndwjyg" "0.896203" + "jqmscuprwq" "0.758854" "bcwncpnibg" "0.497263" "rwrxxrnwtq" "0.810537" "fpmbbgiaao" + "0.816854" "mshexjmkmn" "0.132051" "rhzpguhsws" "0.319074" "krxneqolle" "0.336648" + "dozecfsvue" "0.607888" "jbzyfznpdn" "0.971581" "tjnbsybxws" "0.261454" "vpzsmbjkvy" + "0.581137" "dewdgfrhos" "0.680898" "gcjruttnno" "0.999251" "uzaejrbwue" "0.158681" + "jvekvvldai" "0.606900" "imexfccbxk" "0.986671" "exhjfssojj" "0.999539" "hjjxyybxiv" + "0.548141" "mjifqzmtsd" "0.838391" "tbqidtevrl" "0.812230" "hjlhurakwh" "0.308053" + "ughnpilqqm" "0.047394" "kfselnpkim" "0.852908" "vewfxcxkpf" "0.201866" "usjmfkopln" + "0.126260" "yxsnreuepl" "0.246804" "flrsaczxzc" "0.835412" "aadzbodres" "0.293504" + "bhwytqsafu" "0.708503" "lpahctqgna" "0.045136" "zwlhpcahwu" "0.601683" "kgirldeylz" + "0.556444" "krtsiucvvu" "0.595704" "adlxahxsbq" "0.191964" "alokvrpbih" "0.572409" + "mmcunsiwad" "0.551146" "dfdodbelzn" "0.441988" "ejlunxlwxn" "0.419999" "tlnkrncpwi" + "0.037276" "jhocasnttw" "0.132050" "qslrwqmixc" "0.767421" "afamsavgsi" "0.697485" + "ramoirrdyd" "0.245522" "hplvvuoscb" "0.506283" "dxufcyurjx" "0.614086" "dablvesuho" + "0.085394" "ovqohpxjft" "0.343138" "qclkaeciey" "0.148648" "dgodkfjzos" "0.740439" + "iobkwbwceu" "0.829028" "ocmtsfpsgh" "0.472991" "ubtiscdgrn" "0.349979" "fsoardckcw" + "0.094781" "sstqpivwip" "0.846751" "wzuhzzdezi" "0.746618" "tmyuncyoyd" "0.338101" + "ygoiannoht" "0.538581" "zkbqvttlzy" "0.306575" "bwizktcwmb" "0.560909" "dcjlwhfstw" + "0.075409" "pheajlhymx" "0.142967" "ysntbzffxq" "0.385727" "rgtondctpo" "0.825053" + "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" + "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" + "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' + dataset_name: 1key-zset-1K-elements tested-groups: - sorted-set tested-commands: @@ -28,5 +316,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 53 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml index d9f0298d..e6d1c6b7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements in it and we query it using ZCARD. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements in it and we query it using ZCARD. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern P --hide-histogram -t 4 -c 100 + arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern + P --hide-histogram -t 4 -c 100 resources: requests: memory: 1g + dataset_name: 1key-zset-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -30,5 +33,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 10 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml index bd0629a2..f162af24 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range + of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern P --hide-histogram -t 4 -c 100 + arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern + P --hide-histogram -t 4 -c 100 resources: requests: memory: 1g + dataset_name: 1key-zset-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREMRANGEBYSCORE lb __key__ __key__" --hide-histogram --test-time 120 --pipeline 10 + arguments: --command="ZREMRANGEBYSCORE lb __key__ __key__" --hide-histogram --test-time + 120 --pipeline 10 resources: requests: cpus: '4' memory: 2g - priority: 8 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml index 0e8eb97a..052ba833 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range + of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern P --hide-histogram -t 4 -c 100 + arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern + P --hide-histogram -t 4 -c 100 resources: requests: memory: 1g + dataset_name: 1key-zset-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -30,5 +34,4 @@ clientconfig: requests: cpus: '4' memory: 2g - priority: 8 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml index 5a629732..43ec5596 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements in it and we query it using ZREVRANGE with a range + of 5 elements. This benchmarks helps assessing: https://github.com/redis/redis/issues/10310' dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern P --hide-histogram -t 4 -c 100 + arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern + P --hide-histogram -t 4 -c 100 resources: requests: memory: 1g + dataset_name: 1key-zset-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +29,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANGE lb 5 10 WITHSCORES" --hide-histogram --test-time 180 --pipeline 10 + arguments: --command="ZREVRANGE lb 5 10 WITHSCORES" --hide-histogram --test-time + 180 --pipeline 10 resources: requests: cpus: '4' memory: 2g - priority: 8 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml index 33b0b0aa..f2fde793 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements in it and we query it using ZCARD. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 1M elements in it and we query it using ZCARD. dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern P --hide-histogram -t 4 -c 100 + arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern + P --hide-histogram -t 4 -c 100 resources: requests: memory: 1g + dataset_name: 1key-zset-1M-elements-integer tested-groups: - sorted-set tested-commands: @@ -25,10 +28,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="zscore lb __key__" --key-prefix "" --hide-histogram --test-time 180 --pipeline 10 + arguments: --command="zscore lb __key__" --key-prefix "" --hide-histogram --test-time + 180 --pipeline 10 resources: requests: cpus: '4' memory: 2g - priority: 18 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml index 8646b25c..cc55a164 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements -description: Runs memtier_benchmark, for a keyspace length of 1 key doing zrangestore on a high cardinality sorted set +description: Runs memtier_benchmark, for a keyspace length of 1 key doing zrangestore + on a high cardinality sorted set dbconfig: configuration-parameters: save: '""' @@ -9,10 +10,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '-n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "600001"' + arguments: -n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset + __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" + "--key-minimum" "1" "--key-maximum" "600001" resources: requests: memory: 1g + dataset_name: 1key-zset-600K-elements-zrangestore-1K-elements tested-commands: - zrangestore redis-topologies: @@ -23,12 +27,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 -c 1 -t 1 --command "ZRANGESTORE zset1 zset 0 1000" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 --hide-histogram + arguments: --test-time 120 -c 1 -t 1 --command "ZRANGESTORE zset1 zset 0 1000" --command-key-pattern="P" + --key-minimum=1 --key-maximum 1 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml index 874a15a2..9734807c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements -description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted set with 5 elements with different floating-point numbers, gradually increasing in the size of the float to parse. This is a control benchmark for the one named memtier_benchmark-1key-load-zset-with-5-elements-hexa-score +description: Runs memtier_benchmark, for a keyspace length of 1 key loading the sorted + set with 5 elements with different floating-point numbers, gradually increasing + in the size of the float to parse. This is a control benchmark for the one named + memtier_benchmark-1key-load-zset-with-5-elements-hexa-score dbconfig: configuration-parameters: save: '""' @@ -9,10 +12,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '-n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "600001"' + arguments: -n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset + __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" + "--key-minimum" "1" "--key-maximum" "600001" resources: requests: memory: 1g + dataset_name: 1key-zset-600K-elements-zrangestore-300K-elements tested-commands: - zrangestore redis-topologies: @@ -23,12 +29,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 -c 1 -t 1 --command "ZRANGESTORE zset1 zset 0 300000" --command-key-pattern="P" --key-minimum=1 --key-maximum 1 --hide-histogram + arguments: --test-time 120 -c 1 -t 1 --command "ZRANGESTORE zset1 zset 0 300000" + --command-key-pattern="P" --key-minimum=1 --key-maximum 1 --hide-histogram resources: requests: cpus: '4' memory: 4g - tested-groups: - sorted-set priority: 12 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml index 7d22ee0c..0dc74072 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml @@ -1,16 +1,30 @@ version: 0.4 name: memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1 -description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 100 elements (listpack encoded) and we query it using ZRANK. +description: Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The + SORTED SET contains 100 elements (listpack encoded) and we query it using ZRANK. dbconfig: configuration-parameters: save: '""' check: keyspacelen: 1 init_commands: - - '"ZADD" "zset:listpack:100" "1" "1" "2" "2" "3" "3" "4" "4" "5" "5" "6" "6" "7" "7" "8" "8" "9" "9" "10" "10" "11" "11" "12" "12" "13" "13" "14" "14" "15" "15" "16" "16" "17" "17" "18" "18" "19" "19" "20" "20" "21" "21" "22" "22" "23" "23" "24" "24" "25" "25" "26" "26" "27" "27" "28" "28" "29" "29" "30" "30" "31" "31" "32" "32" "33" "33" "34" "34" "35" "35" "36" "36" "37" "37" "38" "38" "39" "39" "40" "40" "41" "41" "42" "42" "43" "43" "44" "44" "45" "45" "46" "46" "47" "47" "48" "48" "49" "49" "50" "50" "51" "51" "52" "52" "53" "53" "54" "54" "55" "55" "56" "56" "57" "57" "58" "58" "59" "59" "60" "60" "61" "61" "62" "62" "63" "63" "64" "64" "65" "65" "66" "66" "67" "67" "68" "68" "69" "69" "70" "70" "71" "71" "72" "72" "73" "73" "74" "74" "75" "75" "76" "76" "77" "77" "78" "78" "79" "79" "80" "80" "81" "81" "82" "82" "83" "83" "84" "84" "85" "85" "86" "86" "87" "87" "88" "88" "89" "89" "90" "90" "91" "91" "92" "92" "93" "93" "94" "94" "95" "95" "96" "96" "97" "97" "98" "98" "99" "99" "100" "100"' + - '"ZADD" "zset:listpack:100" "1" "1" "2" "2" "3" "3" "4" "4" "5" "5" "6" "6" "7" + "7" "8" "8" "9" "9" "10" "10" "11" "11" "12" "12" "13" "13" "14" "14" "15" "15" + "16" "16" "17" "17" "18" "18" "19" "19" "20" "20" "21" "21" "22" "22" "23" "23" + "24" "24" "25" "25" "26" "26" "27" "27" "28" "28" "29" "29" "30" "30" "31" "31" + "32" "32" "33" "33" "34" "34" "35" "35" "36" "36" "37" "37" "38" "38" "39" "39" + "40" "40" "41" "41" "42" "42" "43" "43" "44" "44" "45" "45" "46" "46" "47" "47" + "48" "48" "49" "49" "50" "50" "51" "51" "52" "52" "53" "53" "54" "54" "55" "55" + "56" "56" "57" "57" "58" "58" "59" "59" "60" "60" "61" "61" "62" "62" "63" "63" + "64" "64" "65" "65" "66" "66" "67" "67" "68" "68" "69" "69" "70" "70" "71" "71" + "72" "72" "73" "73" "74" "74" "75" "75" "76" "76" "77" "77" "78" "78" "79" "79" + "80" "80" "81" "81" "82" "82" "83" "83" "84" "84" "85" "85" "86" "86" "87" "87" + "88" "88" "89" "89" "90" "90" "91" "91" "92" "92" "93" "93" "94" "94" "95" "95" + "96" "96" "97" "97" "98" "98" "99" "99" "100" "100"' resources: requests: memory: 1g + dataset_name: 1key-zset-listpack-zrank-100-elements-pipeline-1 tested-groups: - sorted-set tested-commands: @@ -23,10 +37,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK zset:listpack:100 __key__" --key-maximum 100 --key-minimum 1 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZRANK zset:listpack:100 __key__" --key-maximum 100 --key-minimum + 1 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline + 1 resources: requests: cpus: '4' memory: 2g - priority: 72 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml index ebb68d05..86d97e45 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-eval-hset-expire.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-2keys-lua-eval-hset-expire -description: 'Runs memtier_benchmark, for a keyspace length of 2 HASH keys. This benchmark invokes the execution of a server-side Lua script doing 2 HSET commands and doing EXPIRE on those keys. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 HASH keys. This benchmark + invokes the execution of a server-side Lua script doing 2 HSET commands and doing + EXPIRE on those keys. ' dbconfig: configuration-parameters: save: '""' @@ -24,10 +26,11 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="eval \"redis.call('hset', 'h1', 'k', 'v');redis.call('hset', 'h2', 'k', 'v');redis.call('expire', 'h1', 3600);redis.call('expire', 'h2', 3600);return redis.call('ping')\" 0" --hide-histogram --test-time 180 + arguments: --command="eval \"redis.call('hset', 'h1', 'k', 'v');redis.call('hset', + 'h2', 'k', 'v');redis.call('expire', 'h1', 3600);redis.call('expire', 'h2', 3600);return + redis.call('ping')\" 0" --hide-histogram --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 39 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml index 9ae2ea5e..d28ef46c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-lua-evalsha-hset-expire.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-2keys-lua-evalsha-hset-expire -description: 'Runs memtier_benchmark, for a keyspace length of 2 HASH keys. This benchmark invokes the execution of a server-side Lua script doing 2 HSET commands and doing EXPIRE on those keys. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 HASH keys. This benchmark + invokes the execution of a server-side Lua script doing 2 HSET commands and doing + EXPIRE on those keys. ' dbconfig: configuration-parameters: save: '""' @@ -10,10 +12,10 @@ dbconfig: requests: memory: 1g init_commands: - - - SCRIPT - - LOAD - - redis.call('hset', 'h1', 'k', 'v');redis.call('hset', 'h2', 'k', 'v');redis.call('expire', 'h1', 3600);redis.call('expire', 'h2', 3600);return - + - - SCRIPT + - LOAD + - redis.call('hset', 'h1', 'k', 'v');redis.call('hset', 'h2', 'k', 'v');redis.call('expire', + 'h1', 3600);redis.call('expire', 'h2', 3600);return redis-topologies: - oss-standalone tested-groups: @@ -29,10 +31,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="EVALSHA 5664e4cac3c4cb86682722a5e3cf03e2f83ce7a1 0" --hide-histogram --test-time 180 + arguments: --command="EVALSHA 5664e4cac3c4cb86682722a5e3cf03e2f83ce7a1 0" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - priority: 24 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml index 7fd905de..21cd8db7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-2keys-set-10-100-elements-sdiff -description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 ) The SET with set:10 is a subset of the set:100 We query their difference using SDIFF that returns 90 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first + SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 + ) The SET with set:10 is a subset of the set:100 We query their difference using + SDIFF that returns 90 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,8 +13,26 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 2keys-set-10-100-elements-sdiff tested-commands: - smembers - sdiff @@ -28,7 +49,6 @@ clientconfig: requests: cpus: '4' memory: 2g - tested-groups: - set priority: 131 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml index 2343a7f5..785f3671 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-2keys-set-10-100-elements-sinter -description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 ) The SET with set:10 is a subset of the set:100 We query their intersection using SINTER that returns 10 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first + SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 + ) The SET with set:10 is a subset of the set:100 We query their intersection using + SINTER that returns 10 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,8 +13,26 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 2keys-set-10-100-elements-sinter tested-commands: - smembers - sinter @@ -28,7 +49,6 @@ clientconfig: requests: cpus: '4' memory: 2g - tested-groups: - set priority: 102 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml index 8b7e9002..9f50470a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml @@ -1,6 +1,9 @@ version: 0.4 name: memtier_benchmark-2keys-set-10-100-elements-sunion -description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 ) The SET with set:10 is a subset of the set:100 We query their union using SUNION that returns 100 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 SET key. The first + SET contains 10 elements ( set:10 ) The second SET contains 100 elements ( set:100 + ) The SET with set:10 is a subset of the set:100 We query their union using SUNION + that returns 100 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,8 +13,26 @@ dbconfig: requests: memory: 1g init_commands: - - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" + "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' + - '"SADD" "set:100" "vyoomgwuzv" "xamjodnbpf" "ewomnmugfa" "ljcgdooafo" "pcxdhdjwnf" + "djetcyfxuc" "licotqplim" "alqlzsvuuz" "ijsmoyesvd" "whmotknaff" "rkaznetutk" + "ksqpdywgdd" "gorgpnnqwr" "gekntrykfh" "rjkknoigmu" "luemuetmia" "gxephxbdru" + "ncjfckgkcl" "hhjclfbbka" "cgoeihlnei" "zwnitejtpg" "upodnpqenn" "mibvtmqxcy" + "htvbwmfyic" "rqvryfvlie" "nxcdcaqgit" "gfdqdrondm" "lysbgqqfqw" "nxzsnkmxvi" + "nsxaigrnje" "cwaveajmcz" "xsepfhdizi" "owtkxlzaci" "agsdggdghc" "tcjvjofxtd" + "kgqrovsxce" "ouuybhtvyb" "ueyrvldzwl" "vpbkvwgxsf" "pytrnqdhvs" "qbiwbqiubb" + "ssjqrsluod" "urvgxwbiiz" "ujrxcmpvsq" "mtccjerdon" "xczfmrxrja" "imyizmhzjk" + "oguwnmniig" "mxwgdcutnb" "pqyurbvifk" "ccagtnjilc" "mbxohpancs" "lgrkndhekf" + "eqlgkwosie" "jxoxtnzujs" "lbtpbknelm" "ichqzmiyot" "mbgehjiauu" "aovfsvbwjg" + "nmgxcctxpn" "vyqqkuszzh" "rojeolnopp" "ibhohmfxzt" "qbyhorvill" "nhfnbxqgol" + "wkbasfyzqz" "mjjuylgssm" "imdqxmkzdj" "oapbvnisyq" "bqntlsaqjb" "ocrcszcznp" + "hhniikmtsx" "hlpdstpvzw" "wqiwdbncmt" "vymjzlzqcn" "hhjchwjlmc" "ypfeltycpy" + "qjyeqcfhjj" "uapsgmizgh" "owbbdezgxn" "qrosceblyo" "sahqeskveq" "dapacykoah" + "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" + "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" + "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' + dataset_name: 2keys-set-10-100-elements-sunion tested-commands: - smembers - sunion @@ -28,7 +49,6 @@ clientconfig: requests: cpus: '4' memory: 2g - tested-groups: - set priority: 104 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml index 47f7c1d3..c7564e53 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 -description: 'Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with 5 entries on each stream. We query both streams on the same command using XREAD with range of all entries. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with + 5 entries on each stream. We query both streams on the same command using XREAD + with range of all entries. ' dbconfig: configuration-parameters: save: '""' @@ -10,16 +12,17 @@ dbconfig: requests: memory: 1g init_commands: - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + dataset_name: 2keys-stream-5-entries-xread-all-entries-pipeline-10 tested-commands: - xread redis-topologies: @@ -30,12 +33,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram --test-time 180 + arguments: --pipeline 10 --command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram + --test-time 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 97 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml index 38588dc2..044b30aa 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-2keys-stream-5-entries-xread-all-entries -description: 'Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with 5 entries on each stream. We query both streams on the same command using XREAD with range of all entries. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with + 5 entries on each stream. We query both streams on the same command using XREAD + with range of all entries. ' dbconfig: configuration-parameters: save: '""' @@ -10,16 +12,17 @@ dbconfig: requests: memory: 1g init_commands: - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-1 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value - - xadd key-2 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-1 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + - xadd key-2 * field value + dataset_name: 2keys-stream-5-entries-xread-all-entries tested-commands: - xread redis-topologies: @@ -30,12 +33,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram --test-time 180 + arguments: --command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram --test-time + 180 resources: requests: cpus: '4' memory: 2g - tested-groups: - stream priority: 97 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml index 43910027..0e659cf6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion -description: 'Runs memtier_benchmark, for a keyspace length of 2 ZSET keys. We query their union using ZUNION that returns 600 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 ZSET keys. We query + their union using ZUNION that returns 600 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,8 +11,406 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:skiplist:1:300" "0.652540306855235" "ele:1:UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg" "0.8731899671198792" "ele:2:RKlVyoHMTvZcoh" "0.0785627468533846" "ele:3:VZWJQlqLBHicktajowIvkyuaddTC" "0.7688563664469605" "ele:4:YaXTxnRGWhENdaOFuXNAJmx" "0.0033318113277969186" "ele:5:JjfFkvonkksjIfHS" "0.49606648747577575" "ele:6:Q" "0.8234766164292862" "ele:7:MZgqGWzeYWDAlplbxvlzllKR" "0.42687597903639085" "ele:8:AGSAuhePDVmONKmViHovKsiIGSXQZdqX" "0.34912978268081996" "ele:9:ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr" "0.15838599188422475" "ele:10:UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw" "0.4376432899068222" "ele:11:cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE" "0.5536939917085721" "ele:12:uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln" "0.403546330051068" "ele:13:kRUDWaPmeYXeJZhgqKpnroFxUSCQ" "0.8808108541089766" "ele:14:PCGgHbGIRxpzFRfADhupCtBKhknUNyqK" "0.23044636914343264" "ele:15:OaHUUrbZEvSOmYOtbUzxnJq" "0.6404180580960533" "ele:16:qJabjKLYYivniNNtGsbnBzRLzYP" "0.6907030016224224" "ele:17:KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp" "0.24900135884008867" "ele:18:bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL" "0.7928656841898908" "ele:19:NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj" "0.9331302297178864" "ele:20:TcZibcjyBLAbljRGHjFgwVeVjbeZwi" "0.640319798434186" "ele:21:nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg" "0.5239886233297175" "ele:22:DZGleQLgYgAjWUcCOhzqsi" "0.6136266546940706" "ele:23:ZVlOgBjrpZhQuQzJYVLYqnxytasTT" "0.6591139297465682" "ele:24:AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV" "0.4468461455464968" "ele:25:pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL" "0.5614231865616031" "ele:26:KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA" "0.022487789155224203" "ele:27:qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW" "0.8510804209364501" "ele:28:QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY" "0.43460695876638156" "ele:29:WcTDiiDHQwNoubgkihXThvM" "0.5610492156901229" "ele:30:XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ" "0.7513407089150304" "ele:31:MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm" "0.09175823221394674" "ele:32:vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS" "0.8586634748104288" "ele:33:wyThKKWAeRg" "0.36952587840155204" "ele:34:cRkudmpGSSMUnPOMhPSzjQ" "0.538356756374977" "ele:35:TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev" "0.5218317459277027" "ele:36:N" "0.658938125456635" "ele:37:mAI" "0.8474868095237909" "ele:38:JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV" "0.20143282352735015" "ele:39:WjaRWpmPlWwPuepbXywfDmqIEPWnBh" "0.23967093347793234" "ele:40:ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk" "0.8108325344648399" "ele:41:WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl" "0.1322111892750637" "ele:42:dfVVGlvVTMufbfSsy" "0.2285660170875491" "ele:43:DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn" "0.9396586731821924" "ele:44:NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq" "0.32374056012496966" "ele:45:TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj" "0.9080986140709963" "ele:46:IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb" "0.3129458198716534" "ele:47:LJFPbCuN" "0.39349745859330765" "ele:48:YTPdFVszdCVVgGGHKqoQxfjU" "0.14704886640549086" "ele:49:fOFwwDNEsxjfpkUrwd" "0.9168814654086035" "ele:50:rJSASiFxeYIINRbbgTBqPbATrcKOP" "0.3100306836090321" "ele:51:VKKOyHveatcnmQR" "0.2370937718635434" "ele:52:OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO" "0.4941647120371836" "ele:53:neeyLswlmLnZXSCDtFx" "0.269336828778751" "ele:54:UuIrk" "0.12151325035284255" "ele:55:FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu" "0.0035001439463812067" "ele:56:aThlZZWlDITljruiWa" "0.5009568203132024" "ele:57:TBszlGVnMdDvMOLiCysTjjANuFqeq" "0.4783242512285928" "ele:58:dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC" "0.531664059031722" "ele:59:reqfWtmvctIfWtqVEuaTEGfarDa" "0.47961187976147" "ele:60:CBvTozpAXrLpS" "0.10226598211977789" "ele:61:eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj" "0.721486119508813" "ele:62:nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa" "0.3044462915617381" "ele:63:AMu" "0.8380361220680647" "ele:64:tQiutM" "0.7791893412340167" "ele:65:jcKQrBTFeuiuHCprihKx" "0.9140067046543505" "ele:66:bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI" "0.6755477551341951" "ele:67:sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc" "0.843803368180551" "ele:68:WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm" "0.4683803962889672" "ele:69:CqNaseFeIzhsgZdZDgySGfNawLz" "0.300477038321727" "ele:70:pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg" "0.6782593142253811" "ele:71:bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa" "0.09916181882671649" "ele:72:jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM" "0.031870198089671176" "ele:73:YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU" "0.9753495730511261" "ele:74:OHVmNYCiDZFlkmsqhwgc" "0.6796131843206142" "ele:75:CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM" "0.41149806297291536" "ele:76:MGFGt" "0.0635854843880973" "ele:77:xVozQKiljlffdYDherQcdYdEmEX" "0.17349539011413317" "ele:78:SORWOElEDHqZuOvYslqzY" "0.6957717601786134" "ele:79:XNVNKDBXRoFHDAu" "0.514568844593022" "ele:80:GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn" "0.5054082476784039" "ele:81:YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk" "0.5791117949403571" "ele:82:PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF" "0.6869490812905924" "ele:83:EDFLipKWqONzJ" "0.5858117779265328" "ele:84:ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp" "0.3328807181469634" "ele:85:kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ" "0.5593178033061493" "ele:86:BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO" "0.9568394270185203" "ele:87:XrsvMeAof" "0.2895493213801318" "ele:88:eVIlCARlsKEygkqngxlVoJIhthE" "0.36404485659899855" "ele:89:tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi" "0.6751249599564046" "ele:90:zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg" "0.4002349143471098" "ele:91:blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY" "0.4373588125087955" "ele:92:LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC" "0.8323339473420782" "ele:93:TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ" "0.7464672802658118" "ele:94:GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu" "0.15234267491477727" "ele:95:bTapHmxvqZNdGNP" "0.42610519579163275" "ele:96:DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI" "0.05073435890699274" "ele:97:uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq" "0.8053618509879708" "ele:98:UYuKZw" "0.21335197746306034" "ele:99:OqRQLePoVHjfSoZV" "0.9955843393406656" "ele:100:s" "0.8638417234689056" "ele:101:uninyp" "0.6170733682662144" "ele:102:lAEvUqfinjrCuTdqJeZpMOqTGvxPeGRyPlQgwunbDdbTEwCsIiUsteGjmwH" "0.21067098312505894" "ele:103:cLsWBIpwTWpKBrmSXb" "0.028805240455834213" "ele:104:ySsyBzpsJRyLIAkqneYVrUXPSZVHjpEYkuPt" "0.011280501394645426" "ele:105:LoyMrzfbpcBTBvjgSaalQslVYEsvOjWxPFeLL" "0.8115524648082592" "ele:106:PemidyGhQD" "0.035339107659025926" "ele:107:udmOOXuqRqJxINvXvFplPC" "0.4088305270182697" "ele:108:KpDIy" "0.7970215729800464" "ele:109:ADZJJiLuNsGIaWjDtovm" "0.6539941469274039" "ele:110:wkRPjlYtkmmRJGsaKTTlNqggqMJEqPziZOGtDlMoEQBFcJZgJSTJdwEAv" "0.6393759361590676" "ele:111:SqLVSBeiOrFcbKmUUqeFvXcyXmfPuAFnRgaiFHPUUhlHHNkzbGjeIPVJS" "0.2775184026673655" "ele:112:NCSCTxgpSSGUSVzcWWZVcGlEwoVuKkjwzMYPOTBjvHHgTxuwPjLOpJCTpQnK" "0.8279369714332658" "ele:113:VfSDdgYSpSeXVhbfntnUfUchciRBrJBZDrvxMPhOiIp" "0.8297173264793561" "ele:114:TXarLyioSIyrUKkOeMXvaJvJaknKVQeaNErnRoufOnArsovay" "0.921999914094598" "ele:115:luAfTJtIHOjwkvrAmjILtyLShtdxPljZptJJQVhhAhCzzBe" "0.1408651634335023" "ele:116:SEpIqRVTaiuoxSCVlaVHjClWDwMEqaBUPMjoEAxzzQgylhwdbYkJu" "0.9948615128480278" "ele:117:ruBCNLrVXV" "0.28579196360737913" "ele:118:rVSIXyykbQnnnQEPddYhrTskBJVTwatBoNFCIyajGejYyDzK" "0.48423755726111095" "ele:119:xgSdRSFMaNILA" "0.7626249612557783" "ele:120:EwYCAzoAXXaXkVnxrtBULVzEoRUc" "0.8752501969266744" "ele:121:LfegRMqEenhHURSmftuFgmOXRtOKcVsTpWqqQxuybwdAWBJduQZxCNyWCz" "0.18280846923814642" "ele:122:GRqtlaLHKmwlLyzsVuSRZX" "0.37855655211354067" "ele:123:YyuHDEqKXwhJkmKKLIRMCbiwrrldSooerdtGFSAAQfWLg" "0.5528763818820261" "ele:124:ynUYqHxGTImWvrHkzVWNKxYvllmfKI" "0.027904528470665824" "ele:125:ICQAYRVcxiqABLuLUSZrsDtCQCTFbMe" "0.47753076845502873" "ele:126:ycQETDJKxyOXEnXzAlytRgOusgLNkd" "0.8606084882797624" "ele:127:tvmUFgtvmjdxLkTEFnFHLGxhLDSPAUfHRhKLSWYbqa" "0.2695904518559701" "ele:128:BaHcXnCofYiGMaxujBsmBX" "0.825149665561988" "ele:129:JBKxSCR" "0.5873452590489512" "ele:130:YGoDxkbekHCOlecubsBeKjmWezcLEbksCtLLRLzxtzvjWrsmbzNLYKehEP" "0.4853159409847696" "ele:131:IZcFPOMzPHcFIHxowCHSTFrkz" "0.5277987567294383" "ele:132:ljcFEIPIpqvYkqtuTMtTXjbBLQOPRHHrqup" "0.9746883646151202" "ele:133:fYcqTpqdzPZANfWuvHIarLYgYsOUoqlQnKPw" "0.42010203003852076" "ele:134:IZwUCcFtBWLXQmMtlMPwa" "0.6802068264362765" "ele:135:mOEPkdtczWkOlMuGGAFAQSJSAzSguNtlkLNVLRdriYltynDBrE" "0.5605617357048859" "ele:136:TaqJicNvVjnCZNKPJuuiStVfruAlkGgGVaTnMbvCbSoZitGWn" "0.4780678427736166" "ele:137:qtBqNJpcFllvQXdoISfeQrTfcKyuMBqWRKWnmzPpTweQyOZBTQQdpog" "0.9561513047181356" "ele:138:UTOEvbGjBMjYZiBs" "0.8298720638792384" "ele:139:gKXkpmgiTrUqh" "0.6737117765393265" "ele:140:EkktDpJsFgJjhKWTaxldBFqqTNBzdownDwxUZIxYveC" "0.2239791912985728" "ele:141:dyvMXjLusRKyYuvDFHXfLcIodjkniz" "0.3232124237169193" "ele:142:JuESJkOktNOtmFITnZdMXZqPmexwZpETgaTlFVVzpXct" "0.2473393788924324" "ele:143:cpSyDhnVPmGNLmeBsFJufaWWgGOwIjQaAXNzrhGbJDrpbeqFDQamnLu" "0.6849106786577351" "ele:144:VooyGbMEAigOuQtVaVEckAxrSQWNtypiEaQEBLGTtbRkPZvsAyXv" "0.3646945793371218" "ele:145:wzvoPCzE" "0.4263757643063858" "ele:146:EqOnUtiDML" "0.11877588855760746" "ele:147:pZteEnbVnuAOtHIrRGNqclHBYATQxnBuZGBfmnNVfagNEIB" "0.8313214144471833" "ele:148:vbXuqfTwwpCPGUJQtKQKUroVrfNxuuKdHcgtLOBbGvRbbwLvaWjlN" "0.3552235823133526" "ele:149:wTUOXktMFXeuxGgVsbzVWudxXvVFGsB" "0.8670386139794473" "ele:150:uJTtytjczUmGkvsUJQcqcpovnyjcvYUUbLtJCSClvzhaOSJDjS" "0.36577274012963557" "ele:151:lyfmWPlIeqc" "0.24997912597471894" "ele:152:TOwZZHcrChOptJHLflNWYtMacvyAfMOlgdAdJlBwXJfRRzzQzXkcOWFhGdOnLQX" "0.8930265134635483" "ele:153:CqkyWatRYKqEIoUffGbyhbOYEWXmMSCOFiWtVTHSoGBLKGixPGOAHJSwaA" "0.8844448577667497" "ele:154:PpiojYsguWELV" "0.20663410393014814" "ele:155:ebykSXjGhZUYxPFNVUCNSHGNKXESmbthHLdBMIqxoevIKBNVajvToF" "0.6375009411769629" "ele:156:BKyktVmLOkuhGFnj" "0.7758172657193476" "ele:157:TTyfrulmMejuyeUsOqVpxnZlIUKukfBQzfFiWbJtF" "0.7611282500726224" "ele:158:iHCjJFEPDIKAvxzcmHaIka" "0.6032754373225729" "ele:159:HvqgRWNliaavH" "0.03311820686884104" "ele:160:Mc" "0.34191832438430536" "ele:161:ueTQVZrHBiAnDl" "0.4234716642081342" "ele:162:OnmAvoDKw" "0.5301950080950026" "ele:163:QKCLvxWwXHxJcFCEelBdFtEpefx" "0.022733115513385638" "ele:164:vDBwpjkPsgMLSMqORsEaDUPrKSERewhtkSKeiXSg" "0.7166885759719259" "ele:165:XhWRCtQNRxRocWTCaLeAEPwpaZnkTpuXjLdKbOOfYZKkXaSQHhpSXqKXCPmxgvo" "0.2712986802084326" "ele:166:nYfETiDXlAbQRwHV" "0.5341470637872556" "ele:167:pvPkJe" "0.9127872805617512" "ele:168:FDtkhJUZjwqLpzRKOXrlHswdBRwWosyOEWbIWcexvVQMZfPzBB" "0.047439916319365505" "ele:169:BqzapfPLtCxXpDpwXRUIqhuArCXhVbLDVe" "0.7003965818703025" "ele:170:DRWtKsWQBXPylejYIjweSlEUYHjQ" "0.9295842042213984" "ele:171:rpCOjLwmoPSdRSBgAsvnslHoBRjcjVgs" "0.15337097639157538" "ele:172:NBcujL" "0.35038314902687495" "ele:173:BPFNhDL" "0.2972028976456653" "ele:174:jDLdVxGIuQu" "0.05070784214978197" "ele:175:tGvWuCBnevIuRAMJkJM" "0.8737583830123556" "ele:176:usk" "0.2596502464090681" "ele:177:mLdja" "0.6512549702440724" "ele:178:ADVf" "0.171917523837822" "ele:179:GJznUmhoHwfVUKgyPmTcHBSOeXgzbjYjzGGCVFMRapXYdnLaIrqP" "0.9979397420983357" "ele:180:sxmXzXmdFnmLemE" "0.7014210018416481" "ele:181:wkrprcygzJTIyenjHRmbSlKjPkCFZNCpxEfmfHPtJOvhGnmuTJN" "0.47129995449384954" "ele:182:kLMiOVKqDAySJCleSQNmCpxHiWKsiiHAB" "0.9380196572341066" "ele:183:mAPuAsnTTWt" "0.7985363184110637" "ele:184:nsKyWhvIJRENgInWpMcYtlXUdYlrxAmwPsMJNfceYIisVAWkUHXLzkvtCsWE" "0.30436502305230007" "ele:185:MtIHsabFodqvQfXFMohljmJmjySkBQytRvsqiwaZsvqXiFaSBhCASpj" "0.18301728746159307" "ele:186:XvcnJWRlzUTIReQLYEvHanoPk" "0.6830517248352558" "ele:187:mWPnYVSFpfHXZQQAbfPmEjYhlZBmNbiEtrELg" "0.0573871247075346" "ele:188:fcpBmLgqkyICmxewGKyu" "0.7366175249486746" "ele:189:lqenYUoRTmdXgVZSxipJtAANzywKKADhcLjBITUfqrXNSp" "0.6626013234824965" "ele:190:xLRDyJxCopIvZIRnCKccnsqdcmbaEMqPvhzWLFiqZdcoWnTqVtZjVymzWIAXa" "0.9960600588618732" "ele:191:PRteciWuildZLvmEeTCJmgMllDKoOJhJwixuZLBGlbsQvadWVLfhnlV" "0.727874550086809" "ele:192:DMUrMSntsHqYQYxcyFphyVPUK" "0.6604159554316062" "ele:193:pEGlqTKafZFuSDMDOKpGZxdIi" "0.09721821831280353" "ele:194:tzLNAcTqXdGzNFbh" "0.9791379052279395" "ele:195:fB" "0.2838642126919253" "ele:196:gRtNokZLMzuqJRkScwAjS" "0.6981639965614237" "ele:197:fXBKJwUT" "0.9696961287425543" "ele:198:jWFKhNjahnRsbroFeGsfFxwnqqGnahaOFiWjHZorNvhLTxttVJRJQQOFY" "0.4258376716676413" "ele:199:IdmFRBLBHLVjGL" "0.858169214478561" "ele:200:zNJFLPdwPyNXNQKiV" "0.3927031503235572" "ele:201:dRj" "0.237872815865668" "ele:202:pjmoJAOJJUtJvqbsZUaiVJejdqIsiDzdeIfbtDenOfIecKOUiGkQ" "0.11542254177692224" "ele:203:MafcbGHWHjuSFeJnbsmwZSey" "0.5318198291186923" "ele:204:JemvwOIgWnBOsPGsStj" "0.5340725029771403" "ele:205:RTZNBRvrFlroSePZmaZhFiwiLhIVW" "0.17377941268306563" "ele:206:XdkL" "0.30708537669522173" "ele:207:OHUUxtNrNFWGGmCwQXGRCrmTkCIpAXGhVkOrYQ" "0.3642470025832414" "ele:208:qaAxqlRyOUGZKMGUVYKUMOeKTxAJGhWvQNzobjTpgHJmqA" "0.2580334519092651" "ele:209:uyUOGLOzNJScaHhOnWPlsEXonSluZJiTMejoBbmhCBiNPnykKcFLRCPYLQNh" "0.2624285220413499" "ele:210:MuwzwnrcuJwdIKLcWMSbnw" "0.34635829232927273" "ele:211:xyJm" "0.10681423588864192" "ele:212:yovowsSuNWRajWXYNf" "0.8816729069830225" "ele:213:DsOEyomgaAPysPtXOHUsAHRjoaYFAGjkYpfAuzWUyIisUuxhSYgueB" "0.11729073608149843" "ele:214:lYWIYclvxtRgJWlvaqwRxdu" "0.2873790683625198" "ele:215:yvgaPYEzVRGwEYEXRGaAcslGqMMCbCbCCfQxuduv" "0.03381283119846146" "ele:216:oEcjbUMKXHVmheaVDplZJhlzwvohIGSBtimMPkYCwHlVNCEUudhptbDT" "0.6756254954730867" "ele:217:lgkJrJMgdFDLqKbxLuZKuNcIbnzinlnEPO" "0.41449552533526235" "ele:218:zlXNUWHqaCTqefHAyhhsbpjIBwPbRgyKkbNmrxPuRmIspZFJcCavcTIxfvoWxA" "0.493707932686583" "ele:219:BpeNnAZtparUSxZapRlQrmheeSYAwUrmoV" "0.5902863264146183" "ele:220:sKaQfmuFTtIoTWSpOM" "0.5253670876810722" "ele:221:lthVVlxBYtYfhKWbKlmespgrYSqooRsxfEhsJfknVIXRlqxTsxoZiFTDpsxXijW" "0.3979963963224349" "ele:222:dypPPwhZYSSZdLLbaTdqNJvxTbMzLOqbaTsqZoplptkmeVfCoyaUzA" "0.3264162174828448" "ele:223:rWRQxKaqsIHKEIndbSWaRsbtxdLKGmbjIySumpCBTVAGl" "0.5865194234543977" "ele:224:TVWmksLFBdwalaCrcQZRsxBP" "0.28559508093149" "ele:225:lweqdVnCultPdfA" "0.4390884403874875" "ele:226:uwOenAghOaAIzmwlOXrRUTAUnWekan" "0.08146792623238486" "ele:227:NxjScuRQyNcFnWqkRTHLolqrxZRekUBUPtr" "0.56411402327654" "ele:228:TVolwVnFHikQlXWOlzKqZfbSvacowfOABsdeVJLkDPXYmGl" "0.05018525036598798" "ele:229:puOxHskikfnTicBCMzJBLaQnrayTlKspWQu" "0.9726447630383682" "ele:230:SoZUJqIJBKsKgJSEShIwONErhhRgBUqJoqecwqgJrgRkRcidMfLaPBzrpBY" "0.2609811554039797" "ele:231:B" "0.4312484747031583" "ele:232:DoZogQEBRkqEfEzGrnAY" "0.13663455127121937" "ele:233:rYjRcYSynHaSRrVKKJIYI" "0.6922873613563912" "ele:234:bWqKHzRRjENdGkYSOARBsSOwQNLvQbUaKnGxwqaupsxg" "0.26794259830799383" "ele:235:ChaEtSGzPuSjhDOKWYKLJmAGGjPRafTbILOWDTPjECztaBMu" "0.9354162431701218" "ele:236:wfJvpZanAmkVtByeNbReOTsGHuxwpFNmBUNHHKFZG" "0.06293157585414022" "ele:237:WXTGbAxNRqkrEjPrrutKPvGufVmhfdxS" "0.14584091869740912" "ele:238:BaAdncxLcTxXSQrjaDePSS" "0.5768086947048872" "ele:239:NshApWUBkEmPuKNkJcEzdNHGwOzPNbtsjJqwFiRhDGfLJKdpwWIqhomLbV" "0.1465696901238831" "ele:240:jUeWhVOTNZsjeoNuEEiLveNn" "0.8008567772804235" "ele:241:bItAchwIsfNZwxpXMsVzByShOaeidVgPUwHcYlKWbRcdmqVvBDtsr" "0.015881745702420402" "ele:242:zdZZudYQqwmzIdtwriWwnnSBRUjOMxgMyBDFlgifIjPCtRAuFqsIjEYD" "0.708215367473081" "ele:243:YHqmOTBgnTISUeIJJYUYvScqHPhistRICcmpGaVbC" "0.39871686306191767" "ele:244:FhW" "0.9063885465673784" "ele:245:TXtHLEKrnsHVLAUKugMxXYqStLjfOuplXltOeBQJzajnPG" "0.06971324400435519" "ele:246:iBVEpOsIQoRLJNXenfYpXLMMMrLSpjHrFTXbdPvMqMaCrPXSjWwUq" "0.7801801140370873" "ele:247:WQJxHppuKdjrMHEkadNLIBNzbbl" "0.791869958747193" "ele:248:sWCJjeZLjQRozg" "0.11309761860918266" "ele:249:plATLnqtFtSgqqQKdVmdClWzznco" "0.44101158627489334" "ele:250:VojKDXEzXkTK" "0.8836040369092594" "ele:251:RBpRJjERYngmXMJfhQnnCyTEZWJoqVnjeTcqzFzzMlXmvATdihbjl" "0.6308249820355207" "ele:252:UZTymvHpshovPSgGjIDJOxJdjwghvyTBZDHkVQO" "0.5006090429638539" "ele:253:uFpUOJOzJZphVtPaDLJMsyyYwjwFjMRGpDgZe" "0.20079043114588013" "ele:254:zKkpUbLcsdyoLl" "0.8872601871594847" "ele:255:icXC" "0.37517625327876525" "ele:256:nwZmgjIJHB" "0.4472302965803041" "ele:257:CEZcDflAQTNZdzObNbrwLtEqjNgkWbcLcXuZQXJAEqyoGymOYqppuJJjyOPEoPFQ" "0.780663262913547" "ele:258:NbjitZzbvvAnffFGnTBhYqkZRbQlPVvc" "0.6114790546701429" "ele:259:EZYOaVLeDkKLGytYZrxLGRzr" "0.18378642318141092" "ele:260:pWYbNbgRlWPddxsjKHmOW" "0.9576760507667561" "ele:261:sZzqVDT" "0.46086383365401096" "ele:262:mGJfvnLGBwbINxDCEXIRtHdmXyqPlOQhvyvmQTGaHAwZfqLsLjJppkdDdMwwsBv" "0.5751175337887499" "ele:263:NmAoaFQUsjupBVUJSiQbUzexEMKCLVHVrRpJrPzlndc" "0.7387122963781291" "ele:264:YWtBJMQbuojBcfwCHTfh" "0.7526407515005629" "ele:265:ILLeKkqt" "0.8982229649976201" "ele:266:udmQBnKTaKXjlaHyfAvffWdNXIKAMPMbIfVNZMCbMUwvlhNCVRJpMsoU" "0.13915355988685996" "ele:267:TG" "0.11838397899318787" "ele:268:LjoaredUaqedrhRQLJViXILOffWJlDgNaCGhROnZIig" "0.2720595275779307" "ele:269:OLvPf" "0.05213699817329576" "ele:270:TGXeaegcvaWaexsIWJODTEudunbCJWjOnfmKszg" "0.9760555384384879" "ele:271:fCQccupsw" "0.1826479936554769" "ele:272:bTCJyfrkZoFKqxNdCsTLxNAfmXPRCSEdNDrMRlvKCRFrjjPuJxlNFkKnaNQ" "0.1816006773234322" "ele:273:SSicxIfZQttLnNPbzDMvxzfSFhnPHAkfFPeclMecFQvnjLmCQpEwjJiq" "0.644883358870358" "ele:274:rpLDqOGlO" "0.5993794681833459" "ele:275:EbFjBeehfQxqNpOQMUUtGvrJKkZVWxWFJxFCKV" "0.6528913316681816" "ele:276:ewiSyYmEjbtTf" "0.5686335211517553" "ele:277:jeVTPCizAMtXIkuTchJUxkYLeTYQwOneymekogMzIvRxzTDzIMLSvujA" "0.6181915174781923" "ele:278:LFxy" "0.14900559309428074" "ele:279:hfghiprQqSviaaVAiIFKekzwQjWhlkZZlVprXxbaqgHYmnFzEOuTtFwBStUfB" "0.8338524744347505" "ele:280:hqwGMGZVWelRXBEphXvTmwXMeVvJc" "0.771379497890405" "ele:281:HVrnrXGygZsIYancOKsmUaLEkPoUpxQRPG" "0.5994072231684636" "ele:282:lIqDYWuyipeWAOAdBQDuTvsKys" "0.534524220798845" "ele:283:kKTDdgRCCxfiPBundKdDyieG" "0.7242139542264654" "ele:284:ni" "0.748944785839734" "ele:285:PdcemqxiBQyHNkhLpTObryItAXvDpRjjmVHDikyedhTeYAhNwQKMHeVcfApk" "0.13370039714229587" "ele:286:FYwSoEUHBhDBsrJMdzpluc" "0.16028766133142947" "ele:287:aDKzQKcuBfiyyuqHEFHLRRCLRamOUARk" "0.026062274014891695" "ele:288:huXBuVvepspZbb" "0.22018183573052252" "ele:289:AnWyUVUBaTyVmRaUcLZWmStRhKeHAgVckxyFojKTBF" "0.07982614064135407" "ele:290:tgggRahsumg" "0.3697557070272254" "ele:291:rksriVmscvrYXzIYayeHJdvPTaGQCdqXnev" "0.09422878535627355" "ele:292:EABGSXaJ" "0.8325274594683421" "ele:293:CgCfRcqeCzNAHINpiUDuMeBeRLRdcd" "0.9693896699692307" "ele:294:sSatYuMLPzLp" "0.5311474696918715" "ele:295:YAaIFIfsiogCsuvVUgrst" "0.39224110837672066" "ele:296:mEHNOjSErtEsZOtlBJPzCRcXmftzwRPNTBVKYtqVoGZssx" "0.8176954488229201" "ele:297:XUBXZiCSdAUJpFEGVzozodrzsDkFYgezysediNYbMkBGfEsqCqY" "0.6137094587670581" "ele:298:zRtQCUMmJkbIxcWFeJhlrnwvhDOcsCTuQmIUIhiDugArfHxbMMwyyUJtxqhirG" "0.7719959033122741" "ele:299:ebFOLQRWlTZoaDHGTjjtKivqSh" "0.37933435410799776" "ele:300:gZjmUQgmBiqNfiPsOCrjlfeTlEEbOfBVrAwqvO"' - - '"ZADD" "zset:skiplist:2:300" "0.09262750297586564" "ele:1:or" "0.9383651132213807" "ele:2:awUEuWVMajnpzOiOTArpuiSQekbfhVWn" "0.5214936071707239" "ele:3:dLvVjtXgfYwUEOxXFQmag" "0.9079214934215405" "ele:4:wMOfziikZlxOokdQjWovNdHdjFFsDAdJaTsZoQmsnEZarl" "0.9067368627115772" "ele:5:HsmxitflvwMNNhEtFbLO" "0.5918503322692709" "ele:6:ksWvrVzSlLItxbntLMhsJiwEZtZoTefTLdTPucwVBLNEHDkVSBNaNCawnVHq" "0.3360474296101915" "ele:7:VmqzHXRmiQzEsGlfdl" "0.7021374853906152" "ele:8:bNt" "0.40311940256418133" "ele:9:HXRaRKNjkdKs" "0.14791692909385812" "ele:10:PWxaeVvawgdqBTonQoBXTylfhnrLAHXJiHtNQdqQOdTr" "0.5499073150836501" "ele:11:WwqfjEXLLihgdcDuddksFuHVAwFvZgfuVfOeNPHFADpJMNySPsVyNt" "0.6739165529304422" "ele:12:SCtBitWxpz" "0.20235214431676818" "ele:13:cPlWndhlUf" "0.981893336127039" "ele:14:doYXBBDseRsuLWCTFIHAuPUxEducFdUYRQDZfNEvVfuDZXKBdOZnpaOiYW" "0.6255137319908027" "ele:15:vHMz" "0.35225381591612226" "ele:16:FFmOJmOgTObVwKIoXdbQFAkIAThqcmuxgAAOzEFlG" "0.6556189581423885" "ele:17:QMjmHFEILYQBtcbQxsazwEkHG" "0.1086786080705826" "ele:18:aQJgvxcBkRtfGQAMgWYhsnhRuHvWeXOzx" "0.4443262581173478" "ele:19:yzixcbOpFNbGrZTlyAlOFrSPvpkkWqrGodYsZWeipzXpHeZ" "0.03407764418162318" "ele:20:vStWKgLIlsakjbFJd" "0.6036090393945417" "ele:21:jEekc" "0.25987832126438726" "ele:22:KpsJAyUDNdNQzsfSkMDfHZ" "0.22654291425478534" "ele:23:tqI" "0.24666995271407322" "ele:24:LGIGPhYgkxfwbKmXWqvPLbYeHhkFUCLFsnOdnLHYtGyjzZkiIdY" "0.4267692300380157" "ele:25:eXcwFSZJCrCCFJynzpgdQDyMWoXDYwCcfTmNbWkcfbk" "0.6293648111766171" "ele:26:EAMIUZvUsAkDhOgAZOylhhQZNyhPurbXSCdaoTCEiZbKxTzXmEZuoQXLz" "0.9918223572334939" "ele:27:IJviLAjBfTjpnygkNme" "0.5400327173421172" "ele:28:WjVMTKGMQhBtwExljSYstaaoWHCwKTBAjwzUbbOAx" "0.4391638034400295" "ele:29:GaTkBmQtkABFNYXgRXBFQYrngrXCuUjLGzLdoOMSANzbAXGN" "0.5248632352049256" "ele:30:wruIHqSfNHqhQdoWyUrkwToqZjh" "0.4245142889842648" "ele:31:QNrjPwqaFhwvzIvRnDrShNDqVvGHHIDnQddMSDyEdxDMIjZvuQSTtcTERRpqDf" "0.6630427890269389" "ele:32:XsvmtdTG" "0.7021725631889002" "ele:33:zXNKoihjyQxKbVTFCsoexA" "0.5991014496086998" "ele:34:xMAdMecdzpMwLOKLsmVM" "0.4167006541149544" "ele:35:XNPlwYjUbEO" "0.21748473627901788" "ele:36:AfNMHPOCbeAksrJDhTMgToaloyhwouVaw" "0.40372213029096016" "ele:37:ELpdvJAfmUdBcPCnZSCXObXTOWLgiEXnEMlOTGXXPCnswBjbHdxjeBHg" "0.6140401066542219" "ele:38:OHhcyIKEemBnEXrQVcRdZhcKkoGOdHWXNCMzSKusoLHENoHXujdS" "0.7550574793380168" "ele:39:MSYpiWjfKhvpfkBSPVCYgjDKdrN" "0.8269371540962509" "ele:40:cfZEjxhlfRgVZfefeVAPlBHpeJxQQwykwaZjj" "0.7674080844005543" "ele:41:CCLbStaDdBZaTUnJPidjwSbEZeeoNigsjnUQDZnjVnWa" "0.036595137191906546" "ele:42:xiULvOJbNphDvlpwSzdoexRlCXtEnlvAUrkppFBlddyJXwaElEcJMPRoqObnm" "0.5698074730307818" "ele:43:SEvLWl" "0.3369129481509787" "ele:44:VcOjsKDJyinLQIRrVnKCWPjgjbDuNzjiyweNxESMKbrQbugYHsIiPoknumhPR" "0.6422106412803937" "ele:45:IAmzgSECLDxqgd" "0.6894083278054212" "ele:46:PcglhQAZxSfSMxJUMwnDvEzlyrZpPxsNyGBujHQvzddmusSaTHtpAkpdzMsNtg" "0.6450057709395803" "ele:47:TJPQSHCulWh" "0.3070909482618994" "ele:48:blWTtuxKnoRamyEtyRbQjJbYYCRaseaIXXtvBihOIadnSKMyKaFGwWBy" "0.8598262989702926" "ele:49:IVJoggskzWEkHKovKwoOHOmaKbgIUYdINWmChdmr" "0.10354415035880926" "ele:50:kgcLRlwdZFgFhhIENJIspcjGvllDOVLsvZtUrVTMyWDfRpfVz" "0.28928908386800456" "ele:51:AvQiIRwghGePoNguwjfUmvnNpOrsmeHKvjoIcBlQNnNRRlIrXD" "0.5442717124338943" "ele:52:RCTfhiXHCPBwOxtWxdSywwfLquWKLAgMvnZGJSUvPqYndYK" "0.7687123004251277" "ele:53:ZuqUsKCutHPBSYKZBuZJQZhRVyTcYMnUzXFFimIJyzfiJNWn" "0.5345711507419348" "ele:54:sXejHVSkPzasBIBzbBwJNOrmKibrflyQWueOY" "0.9658634461828092" "ele:55:YQPZRMGbtDEpPBEofYZMKKrVHKJkpnXEsmqh" "0.23019227710204926" "ele:56:CufakjBGhcZTOWLtUgznxEDhuvNhFqpBzIrGJtdDouAjRFhLWvQSlFu" "0.6068781157494676" "ele:57:onqdsVasiTWusQQCdCswLqp" "0.8301688570711953" "ele:58:GCsxXdadpevs" "0.5694294722761978" "ele:59:poyUfSRMFmwfErZPJUHlgHlubdBXtQhSJGEpiQRHXfNPHFoVFoWJmrGzNhOP" "0.4493023274389891" "ele:60:k" "0.37642031836089995" "ele:61:YQPaAXgTZiFgtsookRhfWWLMVumXoBodaVNJcHPwb" "0.2228297094226499" "ele:62:ejYqfmTTyrYYvLxPDAse" "0.14198066739390958" "ele:63:fsXUMHeAEejToaWjEhTcrmWMbFFdTRSXUOtGWpEbomwlbiOCxjBkDuargUNurtSL" "0.5233946066825867" "ele:64:TezvDO" "0.4878495944197222" "ele:65:HzsWRNuQBNjMJMoxIfjjlfczTcgfWDJfWlKysFAM" "0.017359009875882236" "ele:66:qvHuOqbAosEcdJqW" "0.4003374590717428" "ele:67:MouLyXUsVzEjmjlLCKqEyGBfCsnenlcvPoFWsERYzTvMNfkLKSgKW" "0.23253292632629075" "ele:68:VjFxenLXwgrkQEAbqklWpggsOMMYeLzxTECqbwwGVwhUGZimqAVURMsxzxm" "0.646901662020837" "ele:69:xColhsZjMEXgAKAKOWKtkoJTUGxRp" "0.8839172533047469" "ele:70:lfmulumeTiacynAyztlI" "0.31940112981806046" "ele:71:OfhTwuZNKxrQLEPWPWLaqNseTfoVbEgBZWqSRCf" "0.9457823004980779" "ele:72:yXkYmdBegJjXwgFpWcZnQnEnonqrUKwLxrpydrxuALbVqLbdQEMeuhQNvYJYCmNL" "0.42349649546528356" "ele:73:nqITDNFxSZCgTrGAlsGR" "0.1491128401167493" "ele:74:wSlpcsEWUAxEfdWdGarbiyZBnHqqXMLbabkR" "0.7164223539226408" "ele:75:aIhaMQxatzemPJXL" "0.45353981831873524" "ele:76:PKyZiUhHjWxRavredJTVpxPfWiSIyw" "0.5055761893027574" "ele:77:fCwJdIVTYUcRpxyVtvgrpOShBVKvuDfnezaEicBSaEkufAYjkbPQZLdmpqA" "0.579969466017893" "ele:78:ttgVNrKMzdhyWKM" "0.37257323396198194" "ele:79:tqhZoSrQzrhOrsVgBimIhUxxIpHCpVgAxXeUEQuQAmwwT" "0.12062537296309861" "ele:80:riTBhsaejufrrtAtSqOowA" "0.42813583015090506" "ele:81:ahRppAcoxMSVLt" "0.6486347611701347" "ele:82:cA" "0.034587858704615115" "ele:83:qqrNxMSTddFARf" "0.7593627828586745" "ele:84:FplVKLwuuOafeOeFSItktKgiy" "0.4994696285128135" "ele:85:tIYVAAegmAqMASVk" "0.11891388133869885" "ele:86:YEmCqaoJjXbJltAOoiFnVQNDuVacCaLlOFaeetedotVui" "0.3894622762499911" "ele:87:JdrKgsAPlek" "0.5336569471727015" "ele:88:hcCtXGaLVHWCgMUlYzUKhduXYLemTyQhEYVFg" "0.920251905287605" "ele:89:jnvoEEFVGKKoOjzUtvfoXhNeTetuiJtaDGEnITEBIFuhPaX" "0.968897738066963" "ele:90:qlwTOlqYcziWhbvBMBTVIgCVFnqpVaPNCTpmSPt" "0.9465629005814513" "ele:91:GOVRIARgGyaAIHPwkeEZzMAnqSyTxFfoqWgM" "0.6059363868454227" "ele:92:SfHzXZvuqNU" "0.7358711669072902" "ele:93:gHeGpNWExpYDynWGcoehLcJEHRAhDZfpHzZAABtY" "0.002391740771283568" "ele:94:uwSSATCqTETlbTuEsmJXbgXAEUltRFNuLGTpMbcNQCwWYt" "0.7158149076298387" "ele:95:HwAliXptdbfTvaAVTOOULUEJyTutsHqnXCWaRTTefOWSWHphznqRhpbJZWs" "0.6038934139572911" "ele:96:VFWrpCzknVyyvPRlvcMNurUszGhKYAJFotTWlsGXFBepexNzhWU" "0.6222780454322215" "ele:97:ehNF" "0.9901469156377757" "ele:98:KnywilEdvSsJWLFHbSZCdGdzwCwqRzZgADKsixcQ" "0.3538196101694284" "ele:99:oBPoRiKlTEbPlNjGYQDBLvUkfozTGdFuP" "0.979768652983662" "ele:100:sFiKSSRMgkIQRuwTcWHjKShPvZdfYHKha" "0.0038377506742498513" "ele:101:Res" "0.2662937612113552" "ele:102:TyAW" "0.2792638772861509" "ele:103:HwgGPitqrKxuhVWgFcnBJPIODYPXtajLeLQxumaekHVdlYfqbmkFnkgiwGAa" "0.1781892660507567" "ele:104:LPuxUVFjLm" "0.04705661819915241" "ele:105:TSouAycARbZOqJrgTwNyjjXrbeXKdVtUMFNswZU" "0.7902202191071308" "ele:106:HPWXuahhazgiqzysESJYkoArGYVcQXJgzOCEUPdOWFFIVJXunbCGGtqqntblixFU" "0.4481460935563768" "ele:107:BJDIpNXqOQWSamkceKuigPXGOLEKPOBSpUHxeoEsqzSvIidEdvcqgYiSVG" "0.3432861842856956" "ele:108:taUgdwQZKdCCodjpsjrhHpANRzpisggAPIUbbNYHEtuvE" "0.42832042624818045" "ele:109:AAOSEmNLVtKbrdVrroPeNRxnxbpnJoTlq" "0.30812383447047176" "ele:110:mXRaSwDGEuPrfoIULekfXFDKYsIzmilkIGYTCeJKwbZhQJrfgQtxFhBARoWJZ" "0.7522373944538988" "ele:111:GgBlqTMGaGyqOFRisSUHUTfCiuUL" "0.21562431158684814" "ele:112:CvwkTqOoXtDtu" "0.8428189114630859" "ele:113:EcWUGnCkfXINMaIgGKkgScPZGIvWuPStFXSAMeOxjXeRptoefDUeIuyJPzRBzRHi" "0.6823372379983094" "ele:114:xzIoKVgZNBRQDQfiUF" "0.13935362874792767" "ele:115:KrpPjoVMOyBmuQqpqT" "0.4332332406044198" "ele:116:UOWNObnoXoaJKzh" "0.08138617832932371" "ele:117:rVhWPfDBDxvwJE" "0.30356446861651587" "ele:118:ZSLbxvYgeGGGiLDww" "0.32067439081280513" "ele:119:bQcKjlcGGQNPqeXDxJDnthZflDwBZEnSosGoXcpgkUACLAMGxw" "0.40934598601386774" "ele:120:cLkEBEgUnFyVcuJGoGcPNYJwilsQjBAw" "0.6433179848407005" "ele:121:nnnQlvic" "0.33121455232187447" "ele:122:NzwulvsTLXrMthvgborfBhEsWPizqgwnTzw" "0.8803242323217817" "ele:123:k" "0.5024021684133856" "ele:124:QxzGwrBCzyjrxScubOiOrGJcTzePOFsPhEHFEzOxkkZCwuUirhETCcjIdoWyA" "0.025065994225742627" "ele:125:jqExxEpycRHNbe" "0.043490094554752834" "ele:126:nareUMxBfzRlJVTvbylndDpEgHoZsZbNDBVInjychmAraHPfaekwZzAwglFw" "0.9816097986428053" "ele:127:IQzEwdcKwNBYqI" "0.6572929124981133" "ele:128:stSHqZwAsTzOsZddsAFwHbfEEsfdII" "0.9613433392746732" "ele:129:dEUztMXSn" "0.6147262075260899" "ele:130:gFwBVpGOtjMuDGVuYRfsFqxLozUbKfIbSnouPpkXziBPLipkyBEToMPgNO" "0.4051062573367158" "ele:131:iYlahFoWqUpvpi" "0.34363782060223536" "ele:132:QzxFJqb" "0.8359405554401546" "ele:133:SwhGBfDsmAFlWxKEuCfBNxdff" "0.22939148700606238" "ele:134:cllbmiogUFJoscJuKiaWvMONpxrWLfuRGMCpvGNFpyMxPJSLvZP" "0.8744608124944555" "ele:135:sYvQFgPAzBKmDspUtlvJdlQVklBHKOFUIHrRoSXgBAVQ" "0.5959086484602159" "ele:136:LPnvKvJYBFLAeCCOQECNeyQsTrPMxvVpqKLjGxKgUBEAhE" "0.9540265436675929" "ele:137:gRldWgnHoDZdu" "0.7669071517114534" "ele:138:DXyqifsGEzBQZNReTCmUGmtUGRjSnYMRjxFpClo" "0.4318348989018863" "ele:139:KtyUQh" "0.39059761540419147" "ele:140:hauqIjYbSoFtMcOOKixBAeGacoockSdTvWdHcqTKUXobKk" "0.24983864913879872" "ele:141:uqZhAekgMEGuxtmrZqmRmJVWoUhhPlyhlghNGmWMFRuxFmFptejHsXs" "0.3210435235914324" "ele:142:CTIJViEGArQbStmcRofVExLPAzMWhDyWQJXDque" "0.18980206607687544" "ele:143:MEcsFtRZtouIWHjYfCXwstdYUpDRmiTQjUkmQDnWi" "0.15361329127026002" "ele:144:dLhflQgp" "0.7110669295479786" "ele:145:meAopAZzKlFlTBIeOETzpEGUjWasknpzyPDfbfugugPOMy" "0.471301584307086" "ele:146:c" "0.453076241949232" "ele:147:hQjzXuyJgtetPOWOxMhUvNJXQbxshZmnSasQsaCEbZglftDYEaNwwoUm" "0.32693695754886076" "ele:148:XbqSlCTEBnEqBzLKGsQ" "0.35856995662107494" "ele:149:EhjPJWQnDvkGAejPAthUUuD" "0.31262357180080613" "ele:150:mHxeZoWhEz" "0.005845222671651107" "ele:151:IyvMEPnFfHSenczOjGODbXJwtMXkuaZFVLntXwtL" "0.9235968098260897" "ele:152:lrpVmOGFgBpPRFjMGZIkJJYPKUKZqRFrUpLqyKTEJBEoleEgCSJZaRxHWXZe" "0.13738091090283422" "ele:153:ntihnyZWbefEPtNiSeQqlVEbqaMSSoCvwZuySkgaTpEVBuaYibjXKCpPPdogPY" "0.8819919106825659" "ele:154:ihNNulMflfjrXcnmwbdTKmwRznOAipcJoPIelWDxaJYtmcixuGWxBsksfIxUWHAg" "0.8932991308660218" "ele:155:segCTllUZbjnrkOODLouJuJXiuAzOvoDcPCggmyMTVzzgudrvwVDX" "0.476578059810815" "ele:156:hDedhNThJbQzAhswOyXSdRPMolSQswuUCeTDlWaAjMtZcBOdoyeBUBxwHAWdlKU" "0.15072385720743042" "ele:157:rDjSR" "0.2161277707711633" "ele:158:ZvNhxpHnEUXOdTdxfRDh" "0.9488145816867642" "ele:159:Q" "0.6787840316052304" "ele:160:sQGndmhzUNtmrDtBzsErELxzfgipMunWyBNABPLhAtCAqbVOXtpPlCeDd" "0.7009800982563948" "ele:161:UwGgQFuNoYhVasdZvJjKEOMcVZJWd" "0.3795646206727531" "ele:162:GdsUALhOYcMICnYiDiYkZVvwhH" "0.017890110952071048" "ele:163:zBqByAKlPKPPOC" "0.5533082346819248" "ele:164:bAdZPWtNjtYoGHdqR" "0.23109286509501725" "ele:165:iUJtSYmwqDRGlMsJREewzEHlvuWaMZPJTCvvgFryO" "0.4713040256603368" "ele:166:wjxQPETQlCQXrRLRTDQGmdTzLlKoUeyMFIRsaNQFhyaJbyXJmlCOSCsHvp" "0.049974994424209385" "ele:167:DGPbIzVMMLUWWjVsevouwaypQhbJyMxjwXsjOkIxTtrtKimvOVC" "0.25554197482909946" "ele:168:yFeyxFl" "0.06546972032558007" "ele:169:OJFPPOAfhqYDChfIsKgmwiaTfDXTUbtEWR" "0.16747563632090212" "ele:170:VfVZvYtxJxcvgOFxPjc" "0.8154729106809464" "ele:171:DmJQkcRAyjgHBMCAFkTucwWQvAICMvtSPXxCZYjBTsgaYxjBEcZeEViUboQA" "0.7721499842095603" "ele:172:KeAwetETxSKBInxxSgcjApglCEEjeapcyAxjKWxWmVUxgedBRvOAuRkXjUZdKqw" "0.5689791211786035" "ele:173:lvGjXnJSwVVaxoNr" "0.8855889473005578" "ele:174:CNroyxiGNciqCZmloBvziBxnjfGcrzWdskAMghlNPyIJ" "0.41912320182786467" "ele:175:ejxnnFYYFrbQVVVTxeLjYeVXWrDZopvmgeBDSHQOPevqXslinL" "0.8035165431612967" "ele:176:VdJifmoOOSJzPOfmpOvrCLFkmtNEmEZqF" "0.6869604080666722" "ele:177:btsGNcuRBzmY" "0.3848414466927291" "ele:178:hnmrVTAOGxtrolmLuvMcDzgBDYEnsOOZvUnOtkxLYPFv" "0.28812018831830133" "ele:179:PXvDrJNIcQFbzQuiYokqPt" "0.11921245346059317" "ele:180:aCufiJDTEkX" "0.024182370939839104" "ele:181:HgnVa" "0.04754239386647818" "ele:182:wosItJxaLEdvLzTjjydyvGqJLUSqT" "0.07505696070559253" "ele:183:rpCPWChrqFvgVEVVKRoWVwOJhVQPTAcEYFz" "0.7810121297050087" "ele:184:VpxhuPTEzZtxYRTVjwNczKXaBkoxhJgbKlLoyVawHuGXunvkJk" "0.7319508963422978" "ele:185:MOwjbZkEMvyOrYFexoyxKFsbexmXqqozGMidaWfES" "0.8182970116273036" "ele:186:RmWeqjsbMYAKOXIpflkbOOiMxRYNrREUFWnBsPywsUTjpRszeVD" "0.13763305291470818" "ele:187:jOsLqpJ" "0.7680871215735682" "ele:188:eFmdPITqTFFhxQFDMxrArrRQNz" "0.9520468889430076" "ele:189:ivzhdLabpxFhrXVumNABm" "0.3334255618135925" "ele:190:jHaWvedsjhAxDTNlXtGMqEggBjmkTARXefpU" "0.02094320460632315" "ele:191:jkMJkvC" "0.782568781581072" "ele:192:CBTuXWkjDEGmCnMoTpvLYZMWbgTHYPzZjmtmXFLRiqeOmTOjZHNjoQo" "0.4130369581381168" "ele:193:IejPDoXOfwXhIBVbWApoqnjm" "0.05032810808761934" "ele:194:GpXjiMttIGORqGmnmKEbUhbvJDtcSEgpwgBqAshNgwuXcoXVzWmN" "0.03562147096755652" "ele:195:TdlepDegXuyVNCYDWpcgWmmTCWTdpdEkxDyduMSOuPdmEdUyMaPepfMgMJQYqfxJ" "0.16058179698958497" "ele:196:dvezkSgvqUSe" "0.19543066541353393" "ele:197:PdrxoChVVQKLNBzhjwNDCbfpZ" "0.543247204423523" "ele:198:cjeiZuqQvFu" "0.33635134143621626" "ele:199:lhZJcssulOevtNgyWxxoNpLvfezhbqgWFJTIDmyxIBzC" "0.5115911058102967" "ele:200:ulngahGBnWlOYgQMBGpxDaupccQfMtbOEPON" "0.3379695196719398" "ele:201:bGtRDNQXwIrwETejqWbnluhGIkIPZpdYmmPTXeowpyneLwHa" "0.2728034878865264" "ele:202:SyQzBNVlAeZKPeRPriqO" "0.5368846611030937" "ele:203:IygYZUGEDlgWTfOebFnhJxOaUAKdRMrimlQOHsvYWd" "0.4539679929781939" "ele:204:HEhoVrszrpmkBDlXjPNFaOrfr" "0.3006834739749523" "ele:205:aROjCcIvSVppcmZvuNFDktThdjDGdHWoAowxMhnBSzmlhwEXzXnGFxINjSfybr" "0.0448639195084084" "ele:206:Tl" "0.5049616444247743" "ele:207:kuhdxIfvoPQppaUlJhUBCtlJzgsxFqelgwmsCbbLv" "0.28294877456995937" "ele:208:zDvaPScfjOwDEfAPsjYAdI" "0.6174513829147165" "ele:209:vqsNtI" "0.18252715540611175" "ele:210:QETJHAoEwrcgWgqMvtpSkxOJIPWKGfDksckQjLy" "0.11630546595702906" "ele:211:SfWoguwffTGTlWKSwrDbLKF" "0.3606182682742908" "ele:212:MbKFUFyFmLLTCfEFgdC" "0.4926337206305448" "ele:213:mdDZaxfdkurWkYykEOMYkPx" "0.6000623954063804" "ele:214:ynHVzFwNLgrrVXYDuGtrufyCVaOzzRfraXTXmxegsCcPeFTSaIVQZqwXCb" "0.2775621516125364" "ele:215:GkhknjnPJlvxwURrjpueAxLAEvSY" "0.7922460208724172" "ele:216:nnDjHaHZMisFPagOGsyRuWIGmkNlxkmrgkotedJGWAZPMwqAVfhHyR" "0.5889353014735185" "ele:217:LjXgi" "0.5497216884074748" "ele:218:jdIUkcxVllwKxk" "0.15158869373843586" "ele:219:lfaHJBQSZxAXoQvQFlPigiVHkZgTuMVws" "0.1471601248923734" "ele:220:ErtZpvDixJoWzYaZeDGLNlyvHj" "0.34543282445022816" "ele:221:T" "0.19990737182076168" "ele:222:YxJjmoYLFozIIwrMYOlTxxQMVnnoRNfMJZNsoFkRgtRJxjWLqanXK" "0.9235704327462902" "ele:223:jknpDgOcYsFJkAdHes" "0.028979981957491407" "ele:224:PecWcubMjFo" "0.4819827930201377" "ele:225:BzYNIyOhFAXYdTkiFMVahLnUBpDiNVtfzHr" "0.7450560599120607" "ele:226:npTXtRZLkvUdRxzjAJhBMxrmMBvhbEgxkhpoLDwRADuYpsRddDmNuMaPjfPbsnxd" "0.2026432885675793" "ele:227:XQzBnvrfYQFiADkbGOfRNEqMnfSsuknCCmcYObVsVYqHX" "0.33615596635066225" "ele:228:gi" "0.2998550975047304" "ele:229:TZRTennwunsTOdkYpeygbUpdbMWAfSXuHW" "0.6648237145509738" "ele:230:WVURIAfgDtEhYPyFqlwEGmSryqDTKOcmZFCN" "0.9372645320573785" "ele:231:udBlpLQIU" "0.3002401369498503" "ele:232:QZtIphwpqQZgcMUmeqQkrZTzatshryjTJIPQYFWkGRwjlqwjigMtlKMMemuKTbMg" "0.25105472672858375" "ele:233:xUkFKUrwJNybmdNQRGVehzHfOuGElLrJuuAYxGqbIoHoHmVWfsPglk" "0.9789489212458264" "ele:234:qsatMznJjZjwVeWoDwAsB" "0.7078139907480708" "ele:235:GaaGmlTHoEgtKbHiKGIFM" "0.1046069368957796" "ele:236:KEflKyuBnrCIoilhIaARgQ" "0.6933650368323319" "ele:237:enRNBKg" "0.8675947064153726" "ele:238:MKHpkdutXQrLuD" "0.9649700026640867" "ele:239:TsTIfIuABLEeAQIwTfJaeHpVxkWiapFXnQTQMJnvLLZyXlRwItuSNswMW" "0.5263629254265921" "ele:240:ocCdGAupDHWtVayoOIdguBoxLIyDRqsvckyTWcXqmVfOROMPKrRp" "0.7524063653536449" "ele:241:hW" "0.19599955008534597" "ele:242:akVJEnuYoJgcIWAnSADGMZuwUfVbIq" "0.15609750914096354" "ele:243:hEUhanHWOxoScINZOwKZrbYdUOBKHtoOFcZsAIzoMEvCsPJegRaQlXobtXnaautk" "0.7890752169170604" "ele:244:Rl" "0.7120506976992904" "ele:245:hoceJlyQdVWNISvutYhokdHFydfUWljaVjTfrNuUDZnBJdm" "0.7417159545801839" "ele:246:zgQTYWnUeOwnYPvtYaN" "0.6658632542669134" "ele:247:UVi" "0.8541463086909872" "ele:248:ohJEVIwKMTixERomyzuLCjFinZgZmqkMZFRLqijAEiHjHUcQgZ" "0.9446951127019414" "ele:249:CcIcveuZxIuoeAyJMaYiwDMLGzdqYOuPExXhZsuVfcWUzr" "0.15818622003981309" "ele:250:JwxuBJCEMZbMJAbsIAwPwUMWkNOmRMvVwlVnMBWbRkSUaTNGtDCiBfXdqWI" "0.549760006394579" "ele:251:JAhok" "0.04924382329883947" "ele:252:JIgeRfRMaTziVyjIdodjtorGgHTeoiYHoSewGEvcvjsTKiFLP" "0.3823858466872766" "ele:253:bjZbtanq" "0.40286373652099416" "ele:254:WlWolwQXSRSZATDgsfdGLuRrOFPaG" "0.3864202824447852" "ele:255:iQNzZfsdAUMpqXRpOyuqJJQfPzhJLcfnstKeqpNyEkUBUsx" "0.30087671810763006" "ele:256:uulbqpiGBlgInmlFKRxUAOlXCLZcRCGyQyEHaXFOEvQai" "0.7410145944905596" "ele:257:GyPpWZoEMASkcgOY" "0.7996004149665447" "ele:258:zZNxkTNMqRlGsYahKYsgsPDCDcIsgVDNUrQijkcJxgGHrI" "0.5402362797766433" "ele:259:iqxwwQCxMUAMJEHVpXEwwN" "0.6362128978606277" "ele:260:MUAqsNaJGfPRaOwkBFQVwLBufjgdIyhusYTPwrmWiyRseJCPODBlzb" "0.4996926196597391" "ele:261:oFUZGTyOAQdfnVCGeoCQqJUibzagyMTmdeKMFjsObfORKkudkIzevOqz" "0.42924714893927196" "ele:262:dNzGqFyCVjeHaWeWqoYQfxBbzdUIJCibOSeoXoyceRCPNNJnoyMQeFnQWlk" "0.5322722081965099" "ele:263:cPLVSPyNeYmivofbOXAZERBvCvJBXvthUlMVOAuPzgjuQNmKDBLSBDqsDesYsv" "0.8777291326872585" "ele:264:KJllfZUWKBMJrwxXBjktUrOHwrtTWOuAVpkssvPjgowDHUNheWZHOQJEYuFszrbl" "0.7072711055085867" "ele:265:EkzJFgpBpqiwSpoXFwcjZljQJDkJeQkbdfcdtGYEhGShlPFXwKnBx" "0.20436439828556952" "ele:266:FqpERXPFhMjCNGCeeyGMpFTCicoKSruuqBdZeeGJKPtKktFoamFo" "0.3472173471264659" "ele:267:YhmHpuDCLfD" "0.18021513778229503" "ele:268:uOiGyqEpsyATQiRwtVvJFRrzSzClsNyDHiaywBXAihdvBdpnWtoffjdOoKyh" "0.5522539745259306" "ele:269:iBiK" "0.8385123045630564" "ele:270:zUvpgWWoOAzbaSrFBvznXoKtHkcAmPwOqivMlixNxq" "0.33714769519639143" "ele:271:MsWzfaaReeRzwqWjGACzUicwZtlEFPrltDAXO" "0.4969992294244491" "ele:272:aANoKjfryoOpWqAhpytocmUHCsWxIAYrSwtiiTxw" "0.44636036938360946" "ele:273:clnfwugmPurOKJqMjxn" "0.27285660039441184" "ele:274:atrzvlsfzPNUvAgptZbMSHbGHhvLQyYUH" "0.500326800049104" "ele:275:RuYDbMeeKwElAXxvXLjExHtcF" "0.5466675758624856" "ele:276:dCEGKvzaWNWcvHVeMAgoocWMwdJyootwqFPMHGKKUMPxCH" "0.2018109903813089" "ele:277:eDuQGFBnossxyIbspBTooBfr" "0.014311547995801921" "ele:278:AYJqzOLPgChWlpdtcaZwHIxLRoMiXelshNtOnDMIvtPJioFxddicddrxj" "0.6159669102868971" "ele:279:ujQJI" "0.9039994047199217" "ele:280:fHiRITtiScqaUlJZhyifQIAaAVHfXWmgHMlyQwOlrNxvpXpRoClYWqndtH" "0.41822330412883957" "ele:281:VRbEUYMjyzfbkRvKYGAxlOjvfrVDWdsfMoNaGNJDUYiNhPnaoYJ" "0.20182675744516632" "ele:282:QLyityIrTBIXSZOdHMheKUACiJNrVJelyo" "0.9536655109799361" "ele:283:UlVmxieouLFT" "0.8985298311311088" "ele:284:QAYdFWfyObPVqDkJoJWakCV" "0.8723763850119008" "ele:285:UqMDNekVComtOxijGYdhNkmRimugdNt" "0.5379751008291339" "ele:286:vzWRFCEvBJrOrxlPIiAxbqDByXGE" "0.37873243809375445" "ele:287:zBrbywqJeVbezx" "0.4779307824595257" "ele:288:DOMbWHcXdPYBWUjyLnqHBgVindbTWXxTzaRcVawIbUqHYFDecXMLc" "0.9342932630637866" "ele:289:UiAnOVrnvvtuyTBABOkaRFNIkHfogJCNrNTKXrqcC" "0.034545001035145906" "ele:290:Fz" "0.40461815986202543" "ele:291:klzKqsrhNAxHPnQUjeQXfSQMIIZwWtAFYYBKuqWhNqUnnZpgRrblAPVtoDB" "0.7300189023460038" "ele:292:YFXCvQGOMKOewMiEilWwRQp" "0.1378877900987362" "ele:293:HMlNQLAKOslfMwwUOqEwwuowDEKZ" "0.9649651643860695" "ele:294:DmNeQumEcMMOMhsBZMrKRNhnDwYXKMm" "0.25366932043182866" "ele:295:LrBATkEONciKHMYPEBRTdGLIqYJolXTgMepcMQlQxbdaXkxMYAIlZhqoayDQn" "0.33409580445339604" "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' + - '"ZADD" "zset:skiplist:1:300" "0.652540306855235" "ele:1:UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg" + "0.8731899671198792" "ele:2:RKlVyoHMTvZcoh" "0.0785627468533846" "ele:3:VZWJQlqLBHicktajowIvkyuaddTC" + "0.7688563664469605" "ele:4:YaXTxnRGWhENdaOFuXNAJmx" "0.0033318113277969186" "ele:5:JjfFkvonkksjIfHS" + "0.49606648747577575" "ele:6:Q" "0.8234766164292862" "ele:7:MZgqGWzeYWDAlplbxvlzllKR" + "0.42687597903639085" "ele:8:AGSAuhePDVmONKmViHovKsiIGSXQZdqX" "0.34912978268081996" + "ele:9:ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr" "0.15838599188422475" + "ele:10:UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw" "0.4376432899068222" "ele:11:cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE" + "0.5536939917085721" "ele:12:uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln" "0.403546330051068" + "ele:13:kRUDWaPmeYXeJZhgqKpnroFxUSCQ" "0.8808108541089766" "ele:14:PCGgHbGIRxpzFRfADhupCtBKhknUNyqK" + "0.23044636914343264" "ele:15:OaHUUrbZEvSOmYOtbUzxnJq" "0.6404180580960533" "ele:16:qJabjKLYYivniNNtGsbnBzRLzYP" + "0.6907030016224224" "ele:17:KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp" + "0.24900135884008867" "ele:18:bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL" + "0.7928656841898908" "ele:19:NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj" "0.9331302297178864" + "ele:20:TcZibcjyBLAbljRGHjFgwVeVjbeZwi" "0.640319798434186" "ele:21:nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg" + "0.5239886233297175" "ele:22:DZGleQLgYgAjWUcCOhzqsi" "0.6136266546940706" "ele:23:ZVlOgBjrpZhQuQzJYVLYqnxytasTT" + "0.6591139297465682" "ele:24:AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV" + "0.4468461455464968" "ele:25:pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL" + "0.5614231865616031" "ele:26:KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA" "0.022487789155224203" + "ele:27:qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW" "0.8510804209364501" + "ele:28:QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY" "0.43460695876638156" "ele:29:WcTDiiDHQwNoubgkihXThvM" + "0.5610492156901229" "ele:30:XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ" "0.7513407089150304" + "ele:31:MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm" "0.09175823221394674" + "ele:32:vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS" "0.8586634748104288" + "ele:33:wyThKKWAeRg" "0.36952587840155204" "ele:34:cRkudmpGSSMUnPOMhPSzjQ" "0.538356756374977" + "ele:35:TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev" "0.5218317459277027" + "ele:36:N" "0.658938125456635" "ele:37:mAI" "0.8474868095237909" "ele:38:JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV" + "0.20143282352735015" "ele:39:WjaRWpmPlWwPuepbXywfDmqIEPWnBh" "0.23967093347793234" + "ele:40:ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk" "0.8108325344648399" + "ele:41:WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl" "0.1322111892750637" + "ele:42:dfVVGlvVTMufbfSsy" "0.2285660170875491" "ele:43:DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn" + "0.9396586731821924" "ele:44:NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq" "0.32374056012496966" + "ele:45:TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj" "0.9080986140709963" + "ele:46:IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb" "0.3129458198716534" + "ele:47:LJFPbCuN" "0.39349745859330765" "ele:48:YTPdFVszdCVVgGGHKqoQxfjU" "0.14704886640549086" + "ele:49:fOFwwDNEsxjfpkUrwd" "0.9168814654086035" "ele:50:rJSASiFxeYIINRbbgTBqPbATrcKOP" + "0.3100306836090321" "ele:51:VKKOyHveatcnmQR" "0.2370937718635434" "ele:52:OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO" + "0.4941647120371836" "ele:53:neeyLswlmLnZXSCDtFx" "0.269336828778751" "ele:54:UuIrk" + "0.12151325035284255" "ele:55:FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu" + "0.0035001439463812067" "ele:56:aThlZZWlDITljruiWa" "0.5009568203132024" "ele:57:TBszlGVnMdDvMOLiCysTjjANuFqeq" + "0.4783242512285928" "ele:58:dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC" "0.531664059031722" + "ele:59:reqfWtmvctIfWtqVEuaTEGfarDa" "0.47961187976147" "ele:60:CBvTozpAXrLpS" + "0.10226598211977789" "ele:61:eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj" "0.721486119508813" + "ele:62:nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa" "0.3044462915617381" "ele:63:AMu" + "0.8380361220680647" "ele:64:tQiutM" "0.7791893412340167" "ele:65:jcKQrBTFeuiuHCprihKx" + "0.9140067046543505" "ele:66:bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI" + "0.6755477551341951" "ele:67:sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc" + "0.843803368180551" "ele:68:WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm" "0.4683803962889672" + "ele:69:CqNaseFeIzhsgZdZDgySGfNawLz" "0.300477038321727" "ele:70:pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg" + "0.6782593142253811" "ele:71:bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa" + "0.09916181882671649" "ele:72:jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM" + "0.031870198089671176" "ele:73:YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU" "0.9753495730511261" + "ele:74:OHVmNYCiDZFlkmsqhwgc" "0.6796131843206142" "ele:75:CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM" + "0.41149806297291536" "ele:76:MGFGt" "0.0635854843880973" "ele:77:xVozQKiljlffdYDherQcdYdEmEX" + "0.17349539011413317" "ele:78:SORWOElEDHqZuOvYslqzY" "0.6957717601786134" "ele:79:XNVNKDBXRoFHDAu" + "0.514568844593022" "ele:80:GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn" + "0.5054082476784039" "ele:81:YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk" + "0.5791117949403571" "ele:82:PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF" + "0.6869490812905924" "ele:83:EDFLipKWqONzJ" "0.5858117779265328" "ele:84:ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp" + "0.3328807181469634" "ele:85:kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ" "0.5593178033061493" + "ele:86:BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO" "0.9568394270185203" + "ele:87:XrsvMeAof" "0.2895493213801318" "ele:88:eVIlCARlsKEygkqngxlVoJIhthE" "0.36404485659899855" + "ele:89:tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi" "0.6751249599564046" + "ele:90:zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg" "0.4002349143471098" "ele:91:blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY" + "0.4373588125087955" "ele:92:LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC" "0.8323339473420782" + "ele:93:TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ" "0.7464672802658118" + "ele:94:GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu" "0.15234267491477727" + "ele:95:bTapHmxvqZNdGNP" "0.42610519579163275" "ele:96:DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI" + "0.05073435890699274" "ele:97:uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq" + "0.8053618509879708" "ele:98:UYuKZw" "0.21335197746306034" "ele:99:OqRQLePoVHjfSoZV" + "0.9955843393406656" "ele:100:s" "0.8638417234689056" "ele:101:uninyp" "0.6170733682662144" + "ele:102:lAEvUqfinjrCuTdqJeZpMOqTGvxPeGRyPlQgwunbDdbTEwCsIiUsteGjmwH" "0.21067098312505894" + "ele:103:cLsWBIpwTWpKBrmSXb" "0.028805240455834213" "ele:104:ySsyBzpsJRyLIAkqneYVrUXPSZVHjpEYkuPt" + "0.011280501394645426" "ele:105:LoyMrzfbpcBTBvjgSaalQslVYEsvOjWxPFeLL" "0.8115524648082592" + "ele:106:PemidyGhQD" "0.035339107659025926" "ele:107:udmOOXuqRqJxINvXvFplPC" "0.4088305270182697" + "ele:108:KpDIy" "0.7970215729800464" "ele:109:ADZJJiLuNsGIaWjDtovm" "0.6539941469274039" + "ele:110:wkRPjlYtkmmRJGsaKTTlNqggqMJEqPziZOGtDlMoEQBFcJZgJSTJdwEAv" "0.6393759361590676" + "ele:111:SqLVSBeiOrFcbKmUUqeFvXcyXmfPuAFnRgaiFHPUUhlHHNkzbGjeIPVJS" "0.2775184026673655" + "ele:112:NCSCTxgpSSGUSVzcWWZVcGlEwoVuKkjwzMYPOTBjvHHgTxuwPjLOpJCTpQnK" "0.8279369714332658" + "ele:113:VfSDdgYSpSeXVhbfntnUfUchciRBrJBZDrvxMPhOiIp" "0.8297173264793561" "ele:114:TXarLyioSIyrUKkOeMXvaJvJaknKVQeaNErnRoufOnArsovay" + "0.921999914094598" "ele:115:luAfTJtIHOjwkvrAmjILtyLShtdxPljZptJJQVhhAhCzzBe" + "0.1408651634335023" "ele:116:SEpIqRVTaiuoxSCVlaVHjClWDwMEqaBUPMjoEAxzzQgylhwdbYkJu" + "0.9948615128480278" "ele:117:ruBCNLrVXV" "0.28579196360737913" "ele:118:rVSIXyykbQnnnQEPddYhrTskBJVTwatBoNFCIyajGejYyDzK" + "0.48423755726111095" "ele:119:xgSdRSFMaNILA" "0.7626249612557783" "ele:120:EwYCAzoAXXaXkVnxrtBULVzEoRUc" + "0.8752501969266744" "ele:121:LfegRMqEenhHURSmftuFgmOXRtOKcVsTpWqqQxuybwdAWBJduQZxCNyWCz" + "0.18280846923814642" "ele:122:GRqtlaLHKmwlLyzsVuSRZX" "0.37855655211354067" "ele:123:YyuHDEqKXwhJkmKKLIRMCbiwrrldSooerdtGFSAAQfWLg" + "0.5528763818820261" "ele:124:ynUYqHxGTImWvrHkzVWNKxYvllmfKI" "0.027904528470665824" + "ele:125:ICQAYRVcxiqABLuLUSZrsDtCQCTFbMe" "0.47753076845502873" "ele:126:ycQETDJKxyOXEnXzAlytRgOusgLNkd" + "0.8606084882797624" "ele:127:tvmUFgtvmjdxLkTEFnFHLGxhLDSPAUfHRhKLSWYbqa" "0.2695904518559701" + "ele:128:BaHcXnCofYiGMaxujBsmBX" "0.825149665561988" "ele:129:JBKxSCR" "0.5873452590489512" + "ele:130:YGoDxkbekHCOlecubsBeKjmWezcLEbksCtLLRLzxtzvjWrsmbzNLYKehEP" "0.4853159409847696" + "ele:131:IZcFPOMzPHcFIHxowCHSTFrkz" "0.5277987567294383" "ele:132:ljcFEIPIpqvYkqtuTMtTXjbBLQOPRHHrqup" + "0.9746883646151202" "ele:133:fYcqTpqdzPZANfWuvHIarLYgYsOUoqlQnKPw" "0.42010203003852076" + "ele:134:IZwUCcFtBWLXQmMtlMPwa" "0.6802068264362765" "ele:135:mOEPkdtczWkOlMuGGAFAQSJSAzSguNtlkLNVLRdriYltynDBrE" + "0.5605617357048859" "ele:136:TaqJicNvVjnCZNKPJuuiStVfruAlkGgGVaTnMbvCbSoZitGWn" + "0.4780678427736166" "ele:137:qtBqNJpcFllvQXdoISfeQrTfcKyuMBqWRKWnmzPpTweQyOZBTQQdpog" + "0.9561513047181356" "ele:138:UTOEvbGjBMjYZiBs" "0.8298720638792384" "ele:139:gKXkpmgiTrUqh" + "0.6737117765393265" "ele:140:EkktDpJsFgJjhKWTaxldBFqqTNBzdownDwxUZIxYveC" "0.2239791912985728" + "ele:141:dyvMXjLusRKyYuvDFHXfLcIodjkniz" "0.3232124237169193" "ele:142:JuESJkOktNOtmFITnZdMXZqPmexwZpETgaTlFVVzpXct" + "0.2473393788924324" "ele:143:cpSyDhnVPmGNLmeBsFJufaWWgGOwIjQaAXNzrhGbJDrpbeqFDQamnLu" + "0.6849106786577351" "ele:144:VooyGbMEAigOuQtVaVEckAxrSQWNtypiEaQEBLGTtbRkPZvsAyXv" + "0.3646945793371218" "ele:145:wzvoPCzE" "0.4263757643063858" "ele:146:EqOnUtiDML" + "0.11877588855760746" "ele:147:pZteEnbVnuAOtHIrRGNqclHBYATQxnBuZGBfmnNVfagNEIB" + "0.8313214144471833" "ele:148:vbXuqfTwwpCPGUJQtKQKUroVrfNxuuKdHcgtLOBbGvRbbwLvaWjlN" + "0.3552235823133526" "ele:149:wTUOXktMFXeuxGgVsbzVWudxXvVFGsB" "0.8670386139794473" + "ele:150:uJTtytjczUmGkvsUJQcqcpovnyjcvYUUbLtJCSClvzhaOSJDjS" "0.36577274012963557" + "ele:151:lyfmWPlIeqc" "0.24997912597471894" "ele:152:TOwZZHcrChOptJHLflNWYtMacvyAfMOlgdAdJlBwXJfRRzzQzXkcOWFhGdOnLQX" + "0.8930265134635483" "ele:153:CqkyWatRYKqEIoUffGbyhbOYEWXmMSCOFiWtVTHSoGBLKGixPGOAHJSwaA" + "0.8844448577667497" "ele:154:PpiojYsguWELV" "0.20663410393014814" "ele:155:ebykSXjGhZUYxPFNVUCNSHGNKXESmbthHLdBMIqxoevIKBNVajvToF" + "0.6375009411769629" "ele:156:BKyktVmLOkuhGFnj" "0.7758172657193476" "ele:157:TTyfrulmMejuyeUsOqVpxnZlIUKukfBQzfFiWbJtF" + "0.7611282500726224" "ele:158:iHCjJFEPDIKAvxzcmHaIka" "0.6032754373225729" "ele:159:HvqgRWNliaavH" + "0.03311820686884104" "ele:160:Mc" "0.34191832438430536" "ele:161:ueTQVZrHBiAnDl" + "0.4234716642081342" "ele:162:OnmAvoDKw" "0.5301950080950026" "ele:163:QKCLvxWwXHxJcFCEelBdFtEpefx" + "0.022733115513385638" "ele:164:vDBwpjkPsgMLSMqORsEaDUPrKSERewhtkSKeiXSg" "0.7166885759719259" + "ele:165:XhWRCtQNRxRocWTCaLeAEPwpaZnkTpuXjLdKbOOfYZKkXaSQHhpSXqKXCPmxgvo" "0.2712986802084326" + "ele:166:nYfETiDXlAbQRwHV" "0.5341470637872556" "ele:167:pvPkJe" "0.9127872805617512" + "ele:168:FDtkhJUZjwqLpzRKOXrlHswdBRwWosyOEWbIWcexvVQMZfPzBB" "0.047439916319365505" + "ele:169:BqzapfPLtCxXpDpwXRUIqhuArCXhVbLDVe" "0.7003965818703025" "ele:170:DRWtKsWQBXPylejYIjweSlEUYHjQ" + "0.9295842042213984" "ele:171:rpCOjLwmoPSdRSBgAsvnslHoBRjcjVgs" "0.15337097639157538" + "ele:172:NBcujL" "0.35038314902687495" "ele:173:BPFNhDL" "0.2972028976456653" + "ele:174:jDLdVxGIuQu" "0.05070784214978197" "ele:175:tGvWuCBnevIuRAMJkJM" "0.8737583830123556" + "ele:176:usk" "0.2596502464090681" "ele:177:mLdja" "0.6512549702440724" "ele:178:ADVf" + "0.171917523837822" "ele:179:GJznUmhoHwfVUKgyPmTcHBSOeXgzbjYjzGGCVFMRapXYdnLaIrqP" + "0.9979397420983357" "ele:180:sxmXzXmdFnmLemE" "0.7014210018416481" "ele:181:wkrprcygzJTIyenjHRmbSlKjPkCFZNCpxEfmfHPtJOvhGnmuTJN" + "0.47129995449384954" "ele:182:kLMiOVKqDAySJCleSQNmCpxHiWKsiiHAB" "0.9380196572341066" + "ele:183:mAPuAsnTTWt" "0.7985363184110637" "ele:184:nsKyWhvIJRENgInWpMcYtlXUdYlrxAmwPsMJNfceYIisVAWkUHXLzkvtCsWE" + "0.30436502305230007" "ele:185:MtIHsabFodqvQfXFMohljmJmjySkBQytRvsqiwaZsvqXiFaSBhCASpj" + "0.18301728746159307" "ele:186:XvcnJWRlzUTIReQLYEvHanoPk" "0.6830517248352558" + "ele:187:mWPnYVSFpfHXZQQAbfPmEjYhlZBmNbiEtrELg" "0.0573871247075346" "ele:188:fcpBmLgqkyICmxewGKyu" + "0.7366175249486746" "ele:189:lqenYUoRTmdXgVZSxipJtAANzywKKADhcLjBITUfqrXNSp" + "0.6626013234824965" "ele:190:xLRDyJxCopIvZIRnCKccnsqdcmbaEMqPvhzWLFiqZdcoWnTqVtZjVymzWIAXa" + "0.9960600588618732" "ele:191:PRteciWuildZLvmEeTCJmgMllDKoOJhJwixuZLBGlbsQvadWVLfhnlV" + "0.727874550086809" "ele:192:DMUrMSntsHqYQYxcyFphyVPUK" "0.6604159554316062" "ele:193:pEGlqTKafZFuSDMDOKpGZxdIi" + "0.09721821831280353" "ele:194:tzLNAcTqXdGzNFbh" "0.9791379052279395" "ele:195:fB" + "0.2838642126919253" "ele:196:gRtNokZLMzuqJRkScwAjS" "0.6981639965614237" "ele:197:fXBKJwUT" + "0.9696961287425543" "ele:198:jWFKhNjahnRsbroFeGsfFxwnqqGnahaOFiWjHZorNvhLTxttVJRJQQOFY" + "0.4258376716676413" "ele:199:IdmFRBLBHLVjGL" "0.858169214478561" "ele:200:zNJFLPdwPyNXNQKiV" + "0.3927031503235572" "ele:201:dRj" "0.237872815865668" "ele:202:pjmoJAOJJUtJvqbsZUaiVJejdqIsiDzdeIfbtDenOfIecKOUiGkQ" + "0.11542254177692224" "ele:203:MafcbGHWHjuSFeJnbsmwZSey" "0.5318198291186923" + "ele:204:JemvwOIgWnBOsPGsStj" "0.5340725029771403" "ele:205:RTZNBRvrFlroSePZmaZhFiwiLhIVW" + "0.17377941268306563" "ele:206:XdkL" "0.30708537669522173" "ele:207:OHUUxtNrNFWGGmCwQXGRCrmTkCIpAXGhVkOrYQ" + "0.3642470025832414" "ele:208:qaAxqlRyOUGZKMGUVYKUMOeKTxAJGhWvQNzobjTpgHJmqA" + "0.2580334519092651" "ele:209:uyUOGLOzNJScaHhOnWPlsEXonSluZJiTMejoBbmhCBiNPnykKcFLRCPYLQNh" + "0.2624285220413499" "ele:210:MuwzwnrcuJwdIKLcWMSbnw" "0.34635829232927273" "ele:211:xyJm" + "0.10681423588864192" "ele:212:yovowsSuNWRajWXYNf" "0.8816729069830225" "ele:213:DsOEyomgaAPysPtXOHUsAHRjoaYFAGjkYpfAuzWUyIisUuxhSYgueB" + "0.11729073608149843" "ele:214:lYWIYclvxtRgJWlvaqwRxdu" "0.2873790683625198" "ele:215:yvgaPYEzVRGwEYEXRGaAcslGqMMCbCbCCfQxuduv" + "0.03381283119846146" "ele:216:oEcjbUMKXHVmheaVDplZJhlzwvohIGSBtimMPkYCwHlVNCEUudhptbDT" + "0.6756254954730867" "ele:217:lgkJrJMgdFDLqKbxLuZKuNcIbnzinlnEPO" "0.41449552533526235" + "ele:218:zlXNUWHqaCTqefHAyhhsbpjIBwPbRgyKkbNmrxPuRmIspZFJcCavcTIxfvoWxA" "0.493707932686583" + "ele:219:BpeNnAZtparUSxZapRlQrmheeSYAwUrmoV" "0.5902863264146183" "ele:220:sKaQfmuFTtIoTWSpOM" + "0.5253670876810722" "ele:221:lthVVlxBYtYfhKWbKlmespgrYSqooRsxfEhsJfknVIXRlqxTsxoZiFTDpsxXijW" + "0.3979963963224349" "ele:222:dypPPwhZYSSZdLLbaTdqNJvxTbMzLOqbaTsqZoplptkmeVfCoyaUzA" + "0.3264162174828448" "ele:223:rWRQxKaqsIHKEIndbSWaRsbtxdLKGmbjIySumpCBTVAGl" "0.5865194234543977" + "ele:224:TVWmksLFBdwalaCrcQZRsxBP" "0.28559508093149" "ele:225:lweqdVnCultPdfA" + "0.4390884403874875" "ele:226:uwOenAghOaAIzmwlOXrRUTAUnWekan" "0.08146792623238486" + "ele:227:NxjScuRQyNcFnWqkRTHLolqrxZRekUBUPtr" "0.56411402327654" "ele:228:TVolwVnFHikQlXWOlzKqZfbSvacowfOABsdeVJLkDPXYmGl" + "0.05018525036598798" "ele:229:puOxHskikfnTicBCMzJBLaQnrayTlKspWQu" "0.9726447630383682" + "ele:230:SoZUJqIJBKsKgJSEShIwONErhhRgBUqJoqecwqgJrgRkRcidMfLaPBzrpBY" "0.2609811554039797" + "ele:231:B" "0.4312484747031583" "ele:232:DoZogQEBRkqEfEzGrnAY" "0.13663455127121937" + "ele:233:rYjRcYSynHaSRrVKKJIYI" "0.6922873613563912" "ele:234:bWqKHzRRjENdGkYSOARBsSOwQNLvQbUaKnGxwqaupsxg" + "0.26794259830799383" "ele:235:ChaEtSGzPuSjhDOKWYKLJmAGGjPRafTbILOWDTPjECztaBMu" + "0.9354162431701218" "ele:236:wfJvpZanAmkVtByeNbReOTsGHuxwpFNmBUNHHKFZG" "0.06293157585414022" + "ele:237:WXTGbAxNRqkrEjPrrutKPvGufVmhfdxS" "0.14584091869740912" "ele:238:BaAdncxLcTxXSQrjaDePSS" + "0.5768086947048872" "ele:239:NshApWUBkEmPuKNkJcEzdNHGwOzPNbtsjJqwFiRhDGfLJKdpwWIqhomLbV" + "0.1465696901238831" "ele:240:jUeWhVOTNZsjeoNuEEiLveNn" "0.8008567772804235" "ele:241:bItAchwIsfNZwxpXMsVzByShOaeidVgPUwHcYlKWbRcdmqVvBDtsr" + "0.015881745702420402" "ele:242:zdZZudYQqwmzIdtwriWwnnSBRUjOMxgMyBDFlgifIjPCtRAuFqsIjEYD" + "0.708215367473081" "ele:243:YHqmOTBgnTISUeIJJYUYvScqHPhistRICcmpGaVbC" "0.39871686306191767" + "ele:244:FhW" "0.9063885465673784" "ele:245:TXtHLEKrnsHVLAUKugMxXYqStLjfOuplXltOeBQJzajnPG" + "0.06971324400435519" "ele:246:iBVEpOsIQoRLJNXenfYpXLMMMrLSpjHrFTXbdPvMqMaCrPXSjWwUq" + "0.7801801140370873" "ele:247:WQJxHppuKdjrMHEkadNLIBNzbbl" "0.791869958747193" + "ele:248:sWCJjeZLjQRozg" "0.11309761860918266" "ele:249:plATLnqtFtSgqqQKdVmdClWzznco" + "0.44101158627489334" "ele:250:VojKDXEzXkTK" "0.8836040369092594" "ele:251:RBpRJjERYngmXMJfhQnnCyTEZWJoqVnjeTcqzFzzMlXmvATdihbjl" + "0.6308249820355207" "ele:252:UZTymvHpshovPSgGjIDJOxJdjwghvyTBZDHkVQO" "0.5006090429638539" + "ele:253:uFpUOJOzJZphVtPaDLJMsyyYwjwFjMRGpDgZe" "0.20079043114588013" "ele:254:zKkpUbLcsdyoLl" + "0.8872601871594847" "ele:255:icXC" "0.37517625327876525" "ele:256:nwZmgjIJHB" + "0.4472302965803041" "ele:257:CEZcDflAQTNZdzObNbrwLtEqjNgkWbcLcXuZQXJAEqyoGymOYqppuJJjyOPEoPFQ" + "0.780663262913547" "ele:258:NbjitZzbvvAnffFGnTBhYqkZRbQlPVvc" "0.6114790546701429" + "ele:259:EZYOaVLeDkKLGytYZrxLGRzr" "0.18378642318141092" "ele:260:pWYbNbgRlWPddxsjKHmOW" + "0.9576760507667561" "ele:261:sZzqVDT" "0.46086383365401096" "ele:262:mGJfvnLGBwbINxDCEXIRtHdmXyqPlOQhvyvmQTGaHAwZfqLsLjJppkdDdMwwsBv" + "0.5751175337887499" "ele:263:NmAoaFQUsjupBVUJSiQbUzexEMKCLVHVrRpJrPzlndc" "0.7387122963781291" + "ele:264:YWtBJMQbuojBcfwCHTfh" "0.7526407515005629" "ele:265:ILLeKkqt" "0.8982229649976201" + "ele:266:udmQBnKTaKXjlaHyfAvffWdNXIKAMPMbIfVNZMCbMUwvlhNCVRJpMsoU" "0.13915355988685996" + "ele:267:TG" "0.11838397899318787" "ele:268:LjoaredUaqedrhRQLJViXILOffWJlDgNaCGhROnZIig" + "0.2720595275779307" "ele:269:OLvPf" "0.05213699817329576" "ele:270:TGXeaegcvaWaexsIWJODTEudunbCJWjOnfmKszg" + "0.9760555384384879" "ele:271:fCQccupsw" "0.1826479936554769" "ele:272:bTCJyfrkZoFKqxNdCsTLxNAfmXPRCSEdNDrMRlvKCRFrjjPuJxlNFkKnaNQ" + "0.1816006773234322" "ele:273:SSicxIfZQttLnNPbzDMvxzfSFhnPHAkfFPeclMecFQvnjLmCQpEwjJiq" + "0.644883358870358" "ele:274:rpLDqOGlO" "0.5993794681833459" "ele:275:EbFjBeehfQxqNpOQMUUtGvrJKkZVWxWFJxFCKV" + "0.6528913316681816" "ele:276:ewiSyYmEjbtTf" "0.5686335211517553" "ele:277:jeVTPCizAMtXIkuTchJUxkYLeTYQwOneymekogMzIvRxzTDzIMLSvujA" + "0.6181915174781923" "ele:278:LFxy" "0.14900559309428074" "ele:279:hfghiprQqSviaaVAiIFKekzwQjWhlkZZlVprXxbaqgHYmnFzEOuTtFwBStUfB" + "0.8338524744347505" "ele:280:hqwGMGZVWelRXBEphXvTmwXMeVvJc" "0.771379497890405" + "ele:281:HVrnrXGygZsIYancOKsmUaLEkPoUpxQRPG" "0.5994072231684636" "ele:282:lIqDYWuyipeWAOAdBQDuTvsKys" + "0.534524220798845" "ele:283:kKTDdgRCCxfiPBundKdDyieG" "0.7242139542264654" "ele:284:ni" + "0.748944785839734" "ele:285:PdcemqxiBQyHNkhLpTObryItAXvDpRjjmVHDikyedhTeYAhNwQKMHeVcfApk" + "0.13370039714229587" "ele:286:FYwSoEUHBhDBsrJMdzpluc" "0.16028766133142947" "ele:287:aDKzQKcuBfiyyuqHEFHLRRCLRamOUARk" + "0.026062274014891695" "ele:288:huXBuVvepspZbb" "0.22018183573052252" "ele:289:AnWyUVUBaTyVmRaUcLZWmStRhKeHAgVckxyFojKTBF" + "0.07982614064135407" "ele:290:tgggRahsumg" "0.3697557070272254" "ele:291:rksriVmscvrYXzIYayeHJdvPTaGQCdqXnev" + "0.09422878535627355" "ele:292:EABGSXaJ" "0.8325274594683421" "ele:293:CgCfRcqeCzNAHINpiUDuMeBeRLRdcd" + "0.9693896699692307" "ele:294:sSatYuMLPzLp" "0.5311474696918715" "ele:295:YAaIFIfsiogCsuvVUgrst" + "0.39224110837672066" "ele:296:mEHNOjSErtEsZOtlBJPzCRcXmftzwRPNTBVKYtqVoGZssx" + "0.8176954488229201" "ele:297:XUBXZiCSdAUJpFEGVzozodrzsDkFYgezysediNYbMkBGfEsqCqY" + "0.6137094587670581" "ele:298:zRtQCUMmJkbIxcWFeJhlrnwvhDOcsCTuQmIUIhiDugArfHxbMMwyyUJtxqhirG" + "0.7719959033122741" "ele:299:ebFOLQRWlTZoaDHGTjjtKivqSh" "0.37933435410799776" + "ele:300:gZjmUQgmBiqNfiPsOCrjlfeTlEEbOfBVrAwqvO"' + - '"ZADD" "zset:skiplist:2:300" "0.09262750297586564" "ele:1:or" "0.9383651132213807" + "ele:2:awUEuWVMajnpzOiOTArpuiSQekbfhVWn" "0.5214936071707239" "ele:3:dLvVjtXgfYwUEOxXFQmag" + "0.9079214934215405" "ele:4:wMOfziikZlxOokdQjWovNdHdjFFsDAdJaTsZoQmsnEZarl" "0.9067368627115772" + "ele:5:HsmxitflvwMNNhEtFbLO" "0.5918503322692709" "ele:6:ksWvrVzSlLItxbntLMhsJiwEZtZoTefTLdTPucwVBLNEHDkVSBNaNCawnVHq" + "0.3360474296101915" "ele:7:VmqzHXRmiQzEsGlfdl" "0.7021374853906152" "ele:8:bNt" + "0.40311940256418133" "ele:9:HXRaRKNjkdKs" "0.14791692909385812" "ele:10:PWxaeVvawgdqBTonQoBXTylfhnrLAHXJiHtNQdqQOdTr" + "0.5499073150836501" "ele:11:WwqfjEXLLihgdcDuddksFuHVAwFvZgfuVfOeNPHFADpJMNySPsVyNt" + "0.6739165529304422" "ele:12:SCtBitWxpz" "0.20235214431676818" "ele:13:cPlWndhlUf" + "0.981893336127039" "ele:14:doYXBBDseRsuLWCTFIHAuPUxEducFdUYRQDZfNEvVfuDZXKBdOZnpaOiYW" + "0.6255137319908027" "ele:15:vHMz" "0.35225381591612226" "ele:16:FFmOJmOgTObVwKIoXdbQFAkIAThqcmuxgAAOzEFlG" + "0.6556189581423885" "ele:17:QMjmHFEILYQBtcbQxsazwEkHG" "0.1086786080705826" "ele:18:aQJgvxcBkRtfGQAMgWYhsnhRuHvWeXOzx" + "0.4443262581173478" "ele:19:yzixcbOpFNbGrZTlyAlOFrSPvpkkWqrGodYsZWeipzXpHeZ" + "0.03407764418162318" "ele:20:vStWKgLIlsakjbFJd" "0.6036090393945417" "ele:21:jEekc" + "0.25987832126438726" "ele:22:KpsJAyUDNdNQzsfSkMDfHZ" "0.22654291425478534" "ele:23:tqI" + "0.24666995271407322" "ele:24:LGIGPhYgkxfwbKmXWqvPLbYeHhkFUCLFsnOdnLHYtGyjzZkiIdY" + "0.4267692300380157" "ele:25:eXcwFSZJCrCCFJynzpgdQDyMWoXDYwCcfTmNbWkcfbk" "0.6293648111766171" + "ele:26:EAMIUZvUsAkDhOgAZOylhhQZNyhPurbXSCdaoTCEiZbKxTzXmEZuoQXLz" "0.9918223572334939" + "ele:27:IJviLAjBfTjpnygkNme" "0.5400327173421172" "ele:28:WjVMTKGMQhBtwExljSYstaaoWHCwKTBAjwzUbbOAx" + "0.4391638034400295" "ele:29:GaTkBmQtkABFNYXgRXBFQYrngrXCuUjLGzLdoOMSANzbAXGN" + "0.5248632352049256" "ele:30:wruIHqSfNHqhQdoWyUrkwToqZjh" "0.4245142889842648" + "ele:31:QNrjPwqaFhwvzIvRnDrShNDqVvGHHIDnQddMSDyEdxDMIjZvuQSTtcTERRpqDf" "0.6630427890269389" + "ele:32:XsvmtdTG" "0.7021725631889002" "ele:33:zXNKoihjyQxKbVTFCsoexA" "0.5991014496086998" + "ele:34:xMAdMecdzpMwLOKLsmVM" "0.4167006541149544" "ele:35:XNPlwYjUbEO" "0.21748473627901788" + "ele:36:AfNMHPOCbeAksrJDhTMgToaloyhwouVaw" "0.40372213029096016" "ele:37:ELpdvJAfmUdBcPCnZSCXObXTOWLgiEXnEMlOTGXXPCnswBjbHdxjeBHg" + "0.6140401066542219" "ele:38:OHhcyIKEemBnEXrQVcRdZhcKkoGOdHWXNCMzSKusoLHENoHXujdS" + "0.7550574793380168" "ele:39:MSYpiWjfKhvpfkBSPVCYgjDKdrN" "0.8269371540962509" + "ele:40:cfZEjxhlfRgVZfefeVAPlBHpeJxQQwykwaZjj" "0.7674080844005543" "ele:41:CCLbStaDdBZaTUnJPidjwSbEZeeoNigsjnUQDZnjVnWa" + "0.036595137191906546" "ele:42:xiULvOJbNphDvlpwSzdoexRlCXtEnlvAUrkppFBlddyJXwaElEcJMPRoqObnm" + "0.5698074730307818" "ele:43:SEvLWl" "0.3369129481509787" "ele:44:VcOjsKDJyinLQIRrVnKCWPjgjbDuNzjiyweNxESMKbrQbugYHsIiPoknumhPR" + "0.6422106412803937" "ele:45:IAmzgSECLDxqgd" "0.6894083278054212" "ele:46:PcglhQAZxSfSMxJUMwnDvEzlyrZpPxsNyGBujHQvzddmusSaTHtpAkpdzMsNtg" + "0.6450057709395803" "ele:47:TJPQSHCulWh" "0.3070909482618994" "ele:48:blWTtuxKnoRamyEtyRbQjJbYYCRaseaIXXtvBihOIadnSKMyKaFGwWBy" + "0.8598262989702926" "ele:49:IVJoggskzWEkHKovKwoOHOmaKbgIUYdINWmChdmr" "0.10354415035880926" + "ele:50:kgcLRlwdZFgFhhIENJIspcjGvllDOVLsvZtUrVTMyWDfRpfVz" "0.28928908386800456" + "ele:51:AvQiIRwghGePoNguwjfUmvnNpOrsmeHKvjoIcBlQNnNRRlIrXD" "0.5442717124338943" + "ele:52:RCTfhiXHCPBwOxtWxdSywwfLquWKLAgMvnZGJSUvPqYndYK" "0.7687123004251277" + "ele:53:ZuqUsKCutHPBSYKZBuZJQZhRVyTcYMnUzXFFimIJyzfiJNWn" "0.5345711507419348" + "ele:54:sXejHVSkPzasBIBzbBwJNOrmKibrflyQWueOY" "0.9658634461828092" "ele:55:YQPZRMGbtDEpPBEofYZMKKrVHKJkpnXEsmqh" + "0.23019227710204926" "ele:56:CufakjBGhcZTOWLtUgznxEDhuvNhFqpBzIrGJtdDouAjRFhLWvQSlFu" + "0.6068781157494676" "ele:57:onqdsVasiTWusQQCdCswLqp" "0.8301688570711953" "ele:58:GCsxXdadpevs" + "0.5694294722761978" "ele:59:poyUfSRMFmwfErZPJUHlgHlubdBXtQhSJGEpiQRHXfNPHFoVFoWJmrGzNhOP" + "0.4493023274389891" "ele:60:k" "0.37642031836089995" "ele:61:YQPaAXgTZiFgtsookRhfWWLMVumXoBodaVNJcHPwb" + "0.2228297094226499" "ele:62:ejYqfmTTyrYYvLxPDAse" "0.14198066739390958" "ele:63:fsXUMHeAEejToaWjEhTcrmWMbFFdTRSXUOtGWpEbomwlbiOCxjBkDuargUNurtSL" + "0.5233946066825867" "ele:64:TezvDO" "0.4878495944197222" "ele:65:HzsWRNuQBNjMJMoxIfjjlfczTcgfWDJfWlKysFAM" + "0.017359009875882236" "ele:66:qvHuOqbAosEcdJqW" "0.4003374590717428" "ele:67:MouLyXUsVzEjmjlLCKqEyGBfCsnenlcvPoFWsERYzTvMNfkLKSgKW" + "0.23253292632629075" "ele:68:VjFxenLXwgrkQEAbqklWpggsOMMYeLzxTECqbwwGVwhUGZimqAVURMsxzxm" + "0.646901662020837" "ele:69:xColhsZjMEXgAKAKOWKtkoJTUGxRp" "0.8839172533047469" + "ele:70:lfmulumeTiacynAyztlI" "0.31940112981806046" "ele:71:OfhTwuZNKxrQLEPWPWLaqNseTfoVbEgBZWqSRCf" + "0.9457823004980779" "ele:72:yXkYmdBegJjXwgFpWcZnQnEnonqrUKwLxrpydrxuALbVqLbdQEMeuhQNvYJYCmNL" + "0.42349649546528356" "ele:73:nqITDNFxSZCgTrGAlsGR" "0.1491128401167493" "ele:74:wSlpcsEWUAxEfdWdGarbiyZBnHqqXMLbabkR" + "0.7164223539226408" "ele:75:aIhaMQxatzemPJXL" "0.45353981831873524" "ele:76:PKyZiUhHjWxRavredJTVpxPfWiSIyw" + "0.5055761893027574" "ele:77:fCwJdIVTYUcRpxyVtvgrpOShBVKvuDfnezaEicBSaEkufAYjkbPQZLdmpqA" + "0.579969466017893" "ele:78:ttgVNrKMzdhyWKM" "0.37257323396198194" "ele:79:tqhZoSrQzrhOrsVgBimIhUxxIpHCpVgAxXeUEQuQAmwwT" + "0.12062537296309861" "ele:80:riTBhsaejufrrtAtSqOowA" "0.42813583015090506" "ele:81:ahRppAcoxMSVLt" + "0.6486347611701347" "ele:82:cA" "0.034587858704615115" "ele:83:qqrNxMSTddFARf" + "0.7593627828586745" "ele:84:FplVKLwuuOafeOeFSItktKgiy" "0.4994696285128135" "ele:85:tIYVAAegmAqMASVk" + "0.11891388133869885" "ele:86:YEmCqaoJjXbJltAOoiFnVQNDuVacCaLlOFaeetedotVui" "0.3894622762499911" + "ele:87:JdrKgsAPlek" "0.5336569471727015" "ele:88:hcCtXGaLVHWCgMUlYzUKhduXYLemTyQhEYVFg" + "0.920251905287605" "ele:89:jnvoEEFVGKKoOjzUtvfoXhNeTetuiJtaDGEnITEBIFuhPaX" "0.968897738066963" + "ele:90:qlwTOlqYcziWhbvBMBTVIgCVFnqpVaPNCTpmSPt" "0.9465629005814513" "ele:91:GOVRIARgGyaAIHPwkeEZzMAnqSyTxFfoqWgM" + "0.6059363868454227" "ele:92:SfHzXZvuqNU" "0.7358711669072902" "ele:93:gHeGpNWExpYDynWGcoehLcJEHRAhDZfpHzZAABtY" + "0.002391740771283568" "ele:94:uwSSATCqTETlbTuEsmJXbgXAEUltRFNuLGTpMbcNQCwWYt" + "0.7158149076298387" "ele:95:HwAliXptdbfTvaAVTOOULUEJyTutsHqnXCWaRTTefOWSWHphznqRhpbJZWs" + "0.6038934139572911" "ele:96:VFWrpCzknVyyvPRlvcMNurUszGhKYAJFotTWlsGXFBepexNzhWU" + "0.6222780454322215" "ele:97:ehNF" "0.9901469156377757" "ele:98:KnywilEdvSsJWLFHbSZCdGdzwCwqRzZgADKsixcQ" + "0.3538196101694284" "ele:99:oBPoRiKlTEbPlNjGYQDBLvUkfozTGdFuP" "0.979768652983662" + "ele:100:sFiKSSRMgkIQRuwTcWHjKShPvZdfYHKha" "0.0038377506742498513" "ele:101:Res" + "0.2662937612113552" "ele:102:TyAW" "0.2792638772861509" "ele:103:HwgGPitqrKxuhVWgFcnBJPIODYPXtajLeLQxumaekHVdlYfqbmkFnkgiwGAa" + "0.1781892660507567" "ele:104:LPuxUVFjLm" "0.04705661819915241" "ele:105:TSouAycARbZOqJrgTwNyjjXrbeXKdVtUMFNswZU" + "0.7902202191071308" "ele:106:HPWXuahhazgiqzysESJYkoArGYVcQXJgzOCEUPdOWFFIVJXunbCGGtqqntblixFU" + "0.4481460935563768" "ele:107:BJDIpNXqOQWSamkceKuigPXGOLEKPOBSpUHxeoEsqzSvIidEdvcqgYiSVG" + "0.3432861842856956" "ele:108:taUgdwQZKdCCodjpsjrhHpANRzpisggAPIUbbNYHEtuvE" "0.42832042624818045" + "ele:109:AAOSEmNLVtKbrdVrroPeNRxnxbpnJoTlq" "0.30812383447047176" "ele:110:mXRaSwDGEuPrfoIULekfXFDKYsIzmilkIGYTCeJKwbZhQJrfgQtxFhBARoWJZ" + "0.7522373944538988" "ele:111:GgBlqTMGaGyqOFRisSUHUTfCiuUL" "0.21562431158684814" + "ele:112:CvwkTqOoXtDtu" "0.8428189114630859" "ele:113:EcWUGnCkfXINMaIgGKkgScPZGIvWuPStFXSAMeOxjXeRptoefDUeIuyJPzRBzRHi" + "0.6823372379983094" "ele:114:xzIoKVgZNBRQDQfiUF" "0.13935362874792767" "ele:115:KrpPjoVMOyBmuQqpqT" + "0.4332332406044198" "ele:116:UOWNObnoXoaJKzh" "0.08138617832932371" "ele:117:rVhWPfDBDxvwJE" + "0.30356446861651587" "ele:118:ZSLbxvYgeGGGiLDww" "0.32067439081280513" "ele:119:bQcKjlcGGQNPqeXDxJDnthZflDwBZEnSosGoXcpgkUACLAMGxw" + "0.40934598601386774" "ele:120:cLkEBEgUnFyVcuJGoGcPNYJwilsQjBAw" "0.6433179848407005" + "ele:121:nnnQlvic" "0.33121455232187447" "ele:122:NzwulvsTLXrMthvgborfBhEsWPizqgwnTzw" + "0.8803242323217817" "ele:123:k" "0.5024021684133856" "ele:124:QxzGwrBCzyjrxScubOiOrGJcTzePOFsPhEHFEzOxkkZCwuUirhETCcjIdoWyA" + "0.025065994225742627" "ele:125:jqExxEpycRHNbe" "0.043490094554752834" "ele:126:nareUMxBfzRlJVTvbylndDpEgHoZsZbNDBVInjychmAraHPfaekwZzAwglFw" + "0.9816097986428053" "ele:127:IQzEwdcKwNBYqI" "0.6572929124981133" "ele:128:stSHqZwAsTzOsZddsAFwHbfEEsfdII" + "0.9613433392746732" "ele:129:dEUztMXSn" "0.6147262075260899" "ele:130:gFwBVpGOtjMuDGVuYRfsFqxLozUbKfIbSnouPpkXziBPLipkyBEToMPgNO" + "0.4051062573367158" "ele:131:iYlahFoWqUpvpi" "0.34363782060223536" "ele:132:QzxFJqb" + "0.8359405554401546" "ele:133:SwhGBfDsmAFlWxKEuCfBNxdff" "0.22939148700606238" + "ele:134:cllbmiogUFJoscJuKiaWvMONpxrWLfuRGMCpvGNFpyMxPJSLvZP" "0.8744608124944555" + "ele:135:sYvQFgPAzBKmDspUtlvJdlQVklBHKOFUIHrRoSXgBAVQ" "0.5959086484602159" "ele:136:LPnvKvJYBFLAeCCOQECNeyQsTrPMxvVpqKLjGxKgUBEAhE" + "0.9540265436675929" "ele:137:gRldWgnHoDZdu" "0.7669071517114534" "ele:138:DXyqifsGEzBQZNReTCmUGmtUGRjSnYMRjxFpClo" + "0.4318348989018863" "ele:139:KtyUQh" "0.39059761540419147" "ele:140:hauqIjYbSoFtMcOOKixBAeGacoockSdTvWdHcqTKUXobKk" + "0.24983864913879872" "ele:141:uqZhAekgMEGuxtmrZqmRmJVWoUhhPlyhlghNGmWMFRuxFmFptejHsXs" + "0.3210435235914324" "ele:142:CTIJViEGArQbStmcRofVExLPAzMWhDyWQJXDque" "0.18980206607687544" + "ele:143:MEcsFtRZtouIWHjYfCXwstdYUpDRmiTQjUkmQDnWi" "0.15361329127026002" "ele:144:dLhflQgp" + "0.7110669295479786" "ele:145:meAopAZzKlFlTBIeOETzpEGUjWasknpzyPDfbfugugPOMy" + "0.471301584307086" "ele:146:c" "0.453076241949232" "ele:147:hQjzXuyJgtetPOWOxMhUvNJXQbxshZmnSasQsaCEbZglftDYEaNwwoUm" + "0.32693695754886076" "ele:148:XbqSlCTEBnEqBzLKGsQ" "0.35856995662107494" "ele:149:EhjPJWQnDvkGAejPAthUUuD" + "0.31262357180080613" "ele:150:mHxeZoWhEz" "0.005845222671651107" "ele:151:IyvMEPnFfHSenczOjGODbXJwtMXkuaZFVLntXwtL" + "0.9235968098260897" "ele:152:lrpVmOGFgBpPRFjMGZIkJJYPKUKZqRFrUpLqyKTEJBEoleEgCSJZaRxHWXZe" + "0.13738091090283422" "ele:153:ntihnyZWbefEPtNiSeQqlVEbqaMSSoCvwZuySkgaTpEVBuaYibjXKCpPPdogPY" + "0.8819919106825659" "ele:154:ihNNulMflfjrXcnmwbdTKmwRznOAipcJoPIelWDxaJYtmcixuGWxBsksfIxUWHAg" + "0.8932991308660218" "ele:155:segCTllUZbjnrkOODLouJuJXiuAzOvoDcPCggmyMTVzzgudrvwVDX" + "0.476578059810815" "ele:156:hDedhNThJbQzAhswOyXSdRPMolSQswuUCeTDlWaAjMtZcBOdoyeBUBxwHAWdlKU" + "0.15072385720743042" "ele:157:rDjSR" "0.2161277707711633" "ele:158:ZvNhxpHnEUXOdTdxfRDh" + "0.9488145816867642" "ele:159:Q" "0.6787840316052304" "ele:160:sQGndmhzUNtmrDtBzsErELxzfgipMunWyBNABPLhAtCAqbVOXtpPlCeDd" + "0.7009800982563948" "ele:161:UwGgQFuNoYhVasdZvJjKEOMcVZJWd" "0.3795646206727531" + "ele:162:GdsUALhOYcMICnYiDiYkZVvwhH" "0.017890110952071048" "ele:163:zBqByAKlPKPPOC" + "0.5533082346819248" "ele:164:bAdZPWtNjtYoGHdqR" "0.23109286509501725" "ele:165:iUJtSYmwqDRGlMsJREewzEHlvuWaMZPJTCvvgFryO" + "0.4713040256603368" "ele:166:wjxQPETQlCQXrRLRTDQGmdTzLlKoUeyMFIRsaNQFhyaJbyXJmlCOSCsHvp" + "0.049974994424209385" "ele:167:DGPbIzVMMLUWWjVsevouwaypQhbJyMxjwXsjOkIxTtrtKimvOVC" + "0.25554197482909946" "ele:168:yFeyxFl" "0.06546972032558007" "ele:169:OJFPPOAfhqYDChfIsKgmwiaTfDXTUbtEWR" + "0.16747563632090212" "ele:170:VfVZvYtxJxcvgOFxPjc" "0.8154729106809464" "ele:171:DmJQkcRAyjgHBMCAFkTucwWQvAICMvtSPXxCZYjBTsgaYxjBEcZeEViUboQA" + "0.7721499842095603" "ele:172:KeAwetETxSKBInxxSgcjApglCEEjeapcyAxjKWxWmVUxgedBRvOAuRkXjUZdKqw" + "0.5689791211786035" "ele:173:lvGjXnJSwVVaxoNr" "0.8855889473005578" "ele:174:CNroyxiGNciqCZmloBvziBxnjfGcrzWdskAMghlNPyIJ" + "0.41912320182786467" "ele:175:ejxnnFYYFrbQVVVTxeLjYeVXWrDZopvmgeBDSHQOPevqXslinL" + "0.8035165431612967" "ele:176:VdJifmoOOSJzPOfmpOvrCLFkmtNEmEZqF" "0.6869604080666722" + "ele:177:btsGNcuRBzmY" "0.3848414466927291" "ele:178:hnmrVTAOGxtrolmLuvMcDzgBDYEnsOOZvUnOtkxLYPFv" + "0.28812018831830133" "ele:179:PXvDrJNIcQFbzQuiYokqPt" "0.11921245346059317" "ele:180:aCufiJDTEkX" + "0.024182370939839104" "ele:181:HgnVa" "0.04754239386647818" "ele:182:wosItJxaLEdvLzTjjydyvGqJLUSqT" + "0.07505696070559253" "ele:183:rpCPWChrqFvgVEVVKRoWVwOJhVQPTAcEYFz" "0.7810121297050087" + "ele:184:VpxhuPTEzZtxYRTVjwNczKXaBkoxhJgbKlLoyVawHuGXunvkJk" "0.7319508963422978" + "ele:185:MOwjbZkEMvyOrYFexoyxKFsbexmXqqozGMidaWfES" "0.8182970116273036" "ele:186:RmWeqjsbMYAKOXIpflkbOOiMxRYNrREUFWnBsPywsUTjpRszeVD" + "0.13763305291470818" "ele:187:jOsLqpJ" "0.7680871215735682" "ele:188:eFmdPITqTFFhxQFDMxrArrRQNz" + "0.9520468889430076" "ele:189:ivzhdLabpxFhrXVumNABm" "0.3334255618135925" "ele:190:jHaWvedsjhAxDTNlXtGMqEggBjmkTARXefpU" + "0.02094320460632315" "ele:191:jkMJkvC" "0.782568781581072" "ele:192:CBTuXWkjDEGmCnMoTpvLYZMWbgTHYPzZjmtmXFLRiqeOmTOjZHNjoQo" + "0.4130369581381168" "ele:193:IejPDoXOfwXhIBVbWApoqnjm" "0.05032810808761934" + "ele:194:GpXjiMttIGORqGmnmKEbUhbvJDtcSEgpwgBqAshNgwuXcoXVzWmN" "0.03562147096755652" + "ele:195:TdlepDegXuyVNCYDWpcgWmmTCWTdpdEkxDyduMSOuPdmEdUyMaPepfMgMJQYqfxJ" "0.16058179698958497" + "ele:196:dvezkSgvqUSe" "0.19543066541353393" "ele:197:PdrxoChVVQKLNBzhjwNDCbfpZ" + "0.543247204423523" "ele:198:cjeiZuqQvFu" "0.33635134143621626" "ele:199:lhZJcssulOevtNgyWxxoNpLvfezhbqgWFJTIDmyxIBzC" + "0.5115911058102967" "ele:200:ulngahGBnWlOYgQMBGpxDaupccQfMtbOEPON" "0.3379695196719398" + "ele:201:bGtRDNQXwIrwETejqWbnluhGIkIPZpdYmmPTXeowpyneLwHa" "0.2728034878865264" + "ele:202:SyQzBNVlAeZKPeRPriqO" "0.5368846611030937" "ele:203:IygYZUGEDlgWTfOebFnhJxOaUAKdRMrimlQOHsvYWd" + "0.4539679929781939" "ele:204:HEhoVrszrpmkBDlXjPNFaOrfr" "0.3006834739749523" + "ele:205:aROjCcIvSVppcmZvuNFDktThdjDGdHWoAowxMhnBSzmlhwEXzXnGFxINjSfybr" "0.0448639195084084" + "ele:206:Tl" "0.5049616444247743" "ele:207:kuhdxIfvoPQppaUlJhUBCtlJzgsxFqelgwmsCbbLv" + "0.28294877456995937" "ele:208:zDvaPScfjOwDEfAPsjYAdI" "0.6174513829147165" "ele:209:vqsNtI" + "0.18252715540611175" "ele:210:QETJHAoEwrcgWgqMvtpSkxOJIPWKGfDksckQjLy" "0.11630546595702906" + "ele:211:SfWoguwffTGTlWKSwrDbLKF" "0.3606182682742908" "ele:212:MbKFUFyFmLLTCfEFgdC" + "0.4926337206305448" "ele:213:mdDZaxfdkurWkYykEOMYkPx" "0.6000623954063804" "ele:214:ynHVzFwNLgrrVXYDuGtrufyCVaOzzRfraXTXmxegsCcPeFTSaIVQZqwXCb" + "0.2775621516125364" "ele:215:GkhknjnPJlvxwURrjpueAxLAEvSY" "0.7922460208724172" + "ele:216:nnDjHaHZMisFPagOGsyRuWIGmkNlxkmrgkotedJGWAZPMwqAVfhHyR" "0.5889353014735185" + "ele:217:LjXgi" "0.5497216884074748" "ele:218:jdIUkcxVllwKxk" "0.15158869373843586" + "ele:219:lfaHJBQSZxAXoQvQFlPigiVHkZgTuMVws" "0.1471601248923734" "ele:220:ErtZpvDixJoWzYaZeDGLNlyvHj" + "0.34543282445022816" "ele:221:T" "0.19990737182076168" "ele:222:YxJjmoYLFozIIwrMYOlTxxQMVnnoRNfMJZNsoFkRgtRJxjWLqanXK" + "0.9235704327462902" "ele:223:jknpDgOcYsFJkAdHes" "0.028979981957491407" "ele:224:PecWcubMjFo" + "0.4819827930201377" "ele:225:BzYNIyOhFAXYdTkiFMVahLnUBpDiNVtfzHr" "0.7450560599120607" + "ele:226:npTXtRZLkvUdRxzjAJhBMxrmMBvhbEgxkhpoLDwRADuYpsRddDmNuMaPjfPbsnxd" "0.2026432885675793" + "ele:227:XQzBnvrfYQFiADkbGOfRNEqMnfSsuknCCmcYObVsVYqHX" "0.33615596635066225" + "ele:228:gi" "0.2998550975047304" "ele:229:TZRTennwunsTOdkYpeygbUpdbMWAfSXuHW" + "0.6648237145509738" "ele:230:WVURIAfgDtEhYPyFqlwEGmSryqDTKOcmZFCN" "0.9372645320573785" + "ele:231:udBlpLQIU" "0.3002401369498503" "ele:232:QZtIphwpqQZgcMUmeqQkrZTzatshryjTJIPQYFWkGRwjlqwjigMtlKMMemuKTbMg" + "0.25105472672858375" "ele:233:xUkFKUrwJNybmdNQRGVehzHfOuGElLrJuuAYxGqbIoHoHmVWfsPglk" + "0.9789489212458264" "ele:234:qsatMznJjZjwVeWoDwAsB" "0.7078139907480708" "ele:235:GaaGmlTHoEgtKbHiKGIFM" + "0.1046069368957796" "ele:236:KEflKyuBnrCIoilhIaARgQ" "0.6933650368323319" "ele:237:enRNBKg" + "0.8675947064153726" "ele:238:MKHpkdutXQrLuD" "0.9649700026640867" "ele:239:TsTIfIuABLEeAQIwTfJaeHpVxkWiapFXnQTQMJnvLLZyXlRwItuSNswMW" + "0.5263629254265921" "ele:240:ocCdGAupDHWtVayoOIdguBoxLIyDRqsvckyTWcXqmVfOROMPKrRp" + "0.7524063653536449" "ele:241:hW" "0.19599955008534597" "ele:242:akVJEnuYoJgcIWAnSADGMZuwUfVbIq" + "0.15609750914096354" "ele:243:hEUhanHWOxoScINZOwKZrbYdUOBKHtoOFcZsAIzoMEvCsPJegRaQlXobtXnaautk" + "0.7890752169170604" "ele:244:Rl" "0.7120506976992904" "ele:245:hoceJlyQdVWNISvutYhokdHFydfUWljaVjTfrNuUDZnBJdm" + "0.7417159545801839" "ele:246:zgQTYWnUeOwnYPvtYaN" "0.6658632542669134" "ele:247:UVi" + "0.8541463086909872" "ele:248:ohJEVIwKMTixERomyzuLCjFinZgZmqkMZFRLqijAEiHjHUcQgZ" + "0.9446951127019414" "ele:249:CcIcveuZxIuoeAyJMaYiwDMLGzdqYOuPExXhZsuVfcWUzr" + "0.15818622003981309" "ele:250:JwxuBJCEMZbMJAbsIAwPwUMWkNOmRMvVwlVnMBWbRkSUaTNGtDCiBfXdqWI" + "0.549760006394579" "ele:251:JAhok" "0.04924382329883947" "ele:252:JIgeRfRMaTziVyjIdodjtorGgHTeoiYHoSewGEvcvjsTKiFLP" + "0.3823858466872766" "ele:253:bjZbtanq" "0.40286373652099416" "ele:254:WlWolwQXSRSZATDgsfdGLuRrOFPaG" + "0.3864202824447852" "ele:255:iQNzZfsdAUMpqXRpOyuqJJQfPzhJLcfnstKeqpNyEkUBUsx" + "0.30087671810763006" "ele:256:uulbqpiGBlgInmlFKRxUAOlXCLZcRCGyQyEHaXFOEvQai" + "0.7410145944905596" "ele:257:GyPpWZoEMASkcgOY" "0.7996004149665447" "ele:258:zZNxkTNMqRlGsYahKYsgsPDCDcIsgVDNUrQijkcJxgGHrI" + "0.5402362797766433" "ele:259:iqxwwQCxMUAMJEHVpXEwwN" "0.6362128978606277" "ele:260:MUAqsNaJGfPRaOwkBFQVwLBufjgdIyhusYTPwrmWiyRseJCPODBlzb" + "0.4996926196597391" "ele:261:oFUZGTyOAQdfnVCGeoCQqJUibzagyMTmdeKMFjsObfORKkudkIzevOqz" + "0.42924714893927196" "ele:262:dNzGqFyCVjeHaWeWqoYQfxBbzdUIJCibOSeoXoyceRCPNNJnoyMQeFnQWlk" + "0.5322722081965099" "ele:263:cPLVSPyNeYmivofbOXAZERBvCvJBXvthUlMVOAuPzgjuQNmKDBLSBDqsDesYsv" + "0.8777291326872585" "ele:264:KJllfZUWKBMJrwxXBjktUrOHwrtTWOuAVpkssvPjgowDHUNheWZHOQJEYuFszrbl" + "0.7072711055085867" "ele:265:EkzJFgpBpqiwSpoXFwcjZljQJDkJeQkbdfcdtGYEhGShlPFXwKnBx" + "0.20436439828556952" "ele:266:FqpERXPFhMjCNGCeeyGMpFTCicoKSruuqBdZeeGJKPtKktFoamFo" + "0.3472173471264659" "ele:267:YhmHpuDCLfD" "0.18021513778229503" "ele:268:uOiGyqEpsyATQiRwtVvJFRrzSzClsNyDHiaywBXAihdvBdpnWtoffjdOoKyh" + "0.5522539745259306" "ele:269:iBiK" "0.8385123045630564" "ele:270:zUvpgWWoOAzbaSrFBvznXoKtHkcAmPwOqivMlixNxq" + "0.33714769519639143" "ele:271:MsWzfaaReeRzwqWjGACzUicwZtlEFPrltDAXO" "0.4969992294244491" + "ele:272:aANoKjfryoOpWqAhpytocmUHCsWxIAYrSwtiiTxw" "0.44636036938360946" "ele:273:clnfwugmPurOKJqMjxn" + "0.27285660039441184" "ele:274:atrzvlsfzPNUvAgptZbMSHbGHhvLQyYUH" "0.500326800049104" + "ele:275:RuYDbMeeKwElAXxvXLjExHtcF" "0.5466675758624856" "ele:276:dCEGKvzaWNWcvHVeMAgoocWMwdJyootwqFPMHGKKUMPxCH" + "0.2018109903813089" "ele:277:eDuQGFBnossxyIbspBTooBfr" "0.014311547995801921" + "ele:278:AYJqzOLPgChWlpdtcaZwHIxLRoMiXelshNtOnDMIvtPJioFxddicddrxj" "0.6159669102868971" + "ele:279:ujQJI" "0.9039994047199217" "ele:280:fHiRITtiScqaUlJZhyifQIAaAVHfXWmgHMlyQwOlrNxvpXpRoClYWqndtH" + "0.41822330412883957" "ele:281:VRbEUYMjyzfbkRvKYGAxlOjvfrVDWdsfMoNaGNJDUYiNhPnaoYJ" + "0.20182675744516632" "ele:282:QLyityIrTBIXSZOdHMheKUACiJNrVJelyo" "0.9536655109799361" + "ele:283:UlVmxieouLFT" "0.8985298311311088" "ele:284:QAYdFWfyObPVqDkJoJWakCV" + "0.8723763850119008" "ele:285:UqMDNekVComtOxijGYdhNkmRimugdNt" "0.5379751008291339" + "ele:286:vzWRFCEvBJrOrxlPIiAxbqDByXGE" "0.37873243809375445" "ele:287:zBrbywqJeVbezx" + "0.4779307824595257" "ele:288:DOMbWHcXdPYBWUjyLnqHBgVindbTWXxTzaRcVawIbUqHYFDecXMLc" + "0.9342932630637866" "ele:289:UiAnOVrnvvtuyTBABOkaRFNIkHfogJCNrNTKXrqcC" "0.034545001035145906" + "ele:290:Fz" "0.40461815986202543" "ele:291:klzKqsrhNAxHPnQUjeQXfSQMIIZwWtAFYYBKuqWhNqUnnZpgRrblAPVtoDB" + "0.7300189023460038" "ele:292:YFXCvQGOMKOewMiEilWwRQp" "0.1378877900987362" "ele:293:HMlNQLAKOslfMwwUOqEwwuowDEKZ" + "0.9649651643860695" "ele:294:DmNeQumEcMMOMhsBZMrKRNhnDwYXKMm" "0.25366932043182866" + "ele:295:LrBATkEONciKHMYPEBRTdGLIqYJolXTgMepcMQlQxbdaXkxMYAIlZhqoayDQn" "0.33409580445339604" + "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" + "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" + "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' + dataset_name: 2keys-zset-300-elements-skiplist-encoded-zunion tested-commands: - zunion redis-topologies: @@ -22,12 +421,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZUNION 2 zset:skiplist:1:300 zset:skiplist:2:300" --hide-histogram --test-time 120 + arguments: --command="ZUNION 2 zset:skiplist:1:300 zset:skiplist:2:300" --hide-histogram + --test-time 120 resources: requests: cpus: '4' memory: 2g - tested-groups: - sorted-set priority: 131 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml index 9fbce8fd..821d1518 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore -description: 'Runs memtier_benchmark, for a keyspace length of 2 ZSET keys. We query their union using ZUNIONSTORE that returns 600 elements. ' +description: 'Runs memtier_benchmark, for a keyspace length of 2 ZSET keys. We query + their union using ZUNIONSTORE that returns 600 elements. ' dbconfig: configuration-parameters: save: '""' @@ -10,8 +11,406 @@ dbconfig: requests: memory: 1g init_commands: - - '"ZADD" "zset:skiplist:1:300" "0.652540306855235" "ele:1:UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg" "0.8731899671198792" "ele:2:RKlVyoHMTvZcoh" "0.0785627468533846" "ele:3:VZWJQlqLBHicktajowIvkyuaddTC" "0.7688563664469605" "ele:4:YaXTxnRGWhENdaOFuXNAJmx" "0.0033318113277969186" "ele:5:JjfFkvonkksjIfHS" "0.49606648747577575" "ele:6:Q" "0.8234766164292862" "ele:7:MZgqGWzeYWDAlplbxvlzllKR" "0.42687597903639085" "ele:8:AGSAuhePDVmONKmViHovKsiIGSXQZdqX" "0.34912978268081996" "ele:9:ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr" "0.15838599188422475" "ele:10:UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw" "0.4376432899068222" "ele:11:cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE" "0.5536939917085721" "ele:12:uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln" "0.403546330051068" "ele:13:kRUDWaPmeYXeJZhgqKpnroFxUSCQ" "0.8808108541089766" "ele:14:PCGgHbGIRxpzFRfADhupCtBKhknUNyqK" "0.23044636914343264" "ele:15:OaHUUrbZEvSOmYOtbUzxnJq" "0.6404180580960533" "ele:16:qJabjKLYYivniNNtGsbnBzRLzYP" "0.6907030016224224" "ele:17:KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp" "0.24900135884008867" "ele:18:bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL" "0.7928656841898908" "ele:19:NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj" "0.9331302297178864" "ele:20:TcZibcjyBLAbljRGHjFgwVeVjbeZwi" "0.640319798434186" "ele:21:nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg" "0.5239886233297175" "ele:22:DZGleQLgYgAjWUcCOhzqsi" "0.6136266546940706" "ele:23:ZVlOgBjrpZhQuQzJYVLYqnxytasTT" "0.6591139297465682" "ele:24:AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV" "0.4468461455464968" "ele:25:pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL" "0.5614231865616031" "ele:26:KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA" "0.022487789155224203" "ele:27:qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW" "0.8510804209364501" "ele:28:QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY" "0.43460695876638156" "ele:29:WcTDiiDHQwNoubgkihXThvM" "0.5610492156901229" "ele:30:XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ" "0.7513407089150304" "ele:31:MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm" "0.09175823221394674" "ele:32:vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS" "0.8586634748104288" "ele:33:wyThKKWAeRg" "0.36952587840155204" "ele:34:cRkudmpGSSMUnPOMhPSzjQ" "0.538356756374977" "ele:35:TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev" "0.5218317459277027" "ele:36:N" "0.658938125456635" "ele:37:mAI" "0.8474868095237909" "ele:38:JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV" "0.20143282352735015" "ele:39:WjaRWpmPlWwPuepbXywfDmqIEPWnBh" "0.23967093347793234" "ele:40:ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk" "0.8108325344648399" "ele:41:WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl" "0.1322111892750637" "ele:42:dfVVGlvVTMufbfSsy" "0.2285660170875491" "ele:43:DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn" "0.9396586731821924" "ele:44:NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq" "0.32374056012496966" "ele:45:TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj" "0.9080986140709963" "ele:46:IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb" "0.3129458198716534" "ele:47:LJFPbCuN" "0.39349745859330765" "ele:48:YTPdFVszdCVVgGGHKqoQxfjU" "0.14704886640549086" "ele:49:fOFwwDNEsxjfpkUrwd" "0.9168814654086035" "ele:50:rJSASiFxeYIINRbbgTBqPbATrcKOP" "0.3100306836090321" "ele:51:VKKOyHveatcnmQR" "0.2370937718635434" "ele:52:OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO" "0.4941647120371836" "ele:53:neeyLswlmLnZXSCDtFx" "0.269336828778751" "ele:54:UuIrk" "0.12151325035284255" "ele:55:FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu" "0.0035001439463812067" "ele:56:aThlZZWlDITljruiWa" "0.5009568203132024" "ele:57:TBszlGVnMdDvMOLiCysTjjANuFqeq" "0.4783242512285928" "ele:58:dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC" "0.531664059031722" "ele:59:reqfWtmvctIfWtqVEuaTEGfarDa" "0.47961187976147" "ele:60:CBvTozpAXrLpS" "0.10226598211977789" "ele:61:eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj" "0.721486119508813" "ele:62:nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa" "0.3044462915617381" "ele:63:AMu" "0.8380361220680647" "ele:64:tQiutM" "0.7791893412340167" "ele:65:jcKQrBTFeuiuHCprihKx" "0.9140067046543505" "ele:66:bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI" "0.6755477551341951" "ele:67:sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc" "0.843803368180551" "ele:68:WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm" "0.4683803962889672" "ele:69:CqNaseFeIzhsgZdZDgySGfNawLz" "0.300477038321727" "ele:70:pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg" "0.6782593142253811" "ele:71:bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa" "0.09916181882671649" "ele:72:jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM" "0.031870198089671176" "ele:73:YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU" "0.9753495730511261" "ele:74:OHVmNYCiDZFlkmsqhwgc" "0.6796131843206142" "ele:75:CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM" "0.41149806297291536" "ele:76:MGFGt" "0.0635854843880973" "ele:77:xVozQKiljlffdYDherQcdYdEmEX" "0.17349539011413317" "ele:78:SORWOElEDHqZuOvYslqzY" "0.6957717601786134" "ele:79:XNVNKDBXRoFHDAu" "0.514568844593022" "ele:80:GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn" "0.5054082476784039" "ele:81:YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk" "0.5791117949403571" "ele:82:PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF" "0.6869490812905924" "ele:83:EDFLipKWqONzJ" "0.5858117779265328" "ele:84:ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp" "0.3328807181469634" "ele:85:kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ" "0.5593178033061493" "ele:86:BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO" "0.9568394270185203" "ele:87:XrsvMeAof" "0.2895493213801318" "ele:88:eVIlCARlsKEygkqngxlVoJIhthE" "0.36404485659899855" "ele:89:tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi" "0.6751249599564046" "ele:90:zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg" "0.4002349143471098" "ele:91:blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY" "0.4373588125087955" "ele:92:LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC" "0.8323339473420782" "ele:93:TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ" "0.7464672802658118" "ele:94:GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu" "0.15234267491477727" "ele:95:bTapHmxvqZNdGNP" "0.42610519579163275" "ele:96:DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI" "0.05073435890699274" "ele:97:uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq" "0.8053618509879708" "ele:98:UYuKZw" "0.21335197746306034" "ele:99:OqRQLePoVHjfSoZV" "0.9955843393406656" "ele:100:s" "0.8638417234689056" "ele:101:uninyp" "0.6170733682662144" "ele:102:lAEvUqfinjrCuTdqJeZpMOqTGvxPeGRyPlQgwunbDdbTEwCsIiUsteGjmwH" "0.21067098312505894" "ele:103:cLsWBIpwTWpKBrmSXb" "0.028805240455834213" "ele:104:ySsyBzpsJRyLIAkqneYVrUXPSZVHjpEYkuPt" "0.011280501394645426" "ele:105:LoyMrzfbpcBTBvjgSaalQslVYEsvOjWxPFeLL" "0.8115524648082592" "ele:106:PemidyGhQD" "0.035339107659025926" "ele:107:udmOOXuqRqJxINvXvFplPC" "0.4088305270182697" "ele:108:KpDIy" "0.7970215729800464" "ele:109:ADZJJiLuNsGIaWjDtovm" "0.6539941469274039" "ele:110:wkRPjlYtkmmRJGsaKTTlNqggqMJEqPziZOGtDlMoEQBFcJZgJSTJdwEAv" "0.6393759361590676" "ele:111:SqLVSBeiOrFcbKmUUqeFvXcyXmfPuAFnRgaiFHPUUhlHHNkzbGjeIPVJS" "0.2775184026673655" "ele:112:NCSCTxgpSSGUSVzcWWZVcGlEwoVuKkjwzMYPOTBjvHHgTxuwPjLOpJCTpQnK" "0.8279369714332658" "ele:113:VfSDdgYSpSeXVhbfntnUfUchciRBrJBZDrvxMPhOiIp" "0.8297173264793561" "ele:114:TXarLyioSIyrUKkOeMXvaJvJaknKVQeaNErnRoufOnArsovay" "0.921999914094598" "ele:115:luAfTJtIHOjwkvrAmjILtyLShtdxPljZptJJQVhhAhCzzBe" "0.1408651634335023" "ele:116:SEpIqRVTaiuoxSCVlaVHjClWDwMEqaBUPMjoEAxzzQgylhwdbYkJu" "0.9948615128480278" "ele:117:ruBCNLrVXV" "0.28579196360737913" "ele:118:rVSIXyykbQnnnQEPddYhrTskBJVTwatBoNFCIyajGejYyDzK" "0.48423755726111095" "ele:119:xgSdRSFMaNILA" "0.7626249612557783" "ele:120:EwYCAzoAXXaXkVnxrtBULVzEoRUc" "0.8752501969266744" "ele:121:LfegRMqEenhHURSmftuFgmOXRtOKcVsTpWqqQxuybwdAWBJduQZxCNyWCz" "0.18280846923814642" "ele:122:GRqtlaLHKmwlLyzsVuSRZX" "0.37855655211354067" "ele:123:YyuHDEqKXwhJkmKKLIRMCbiwrrldSooerdtGFSAAQfWLg" "0.5528763818820261" "ele:124:ynUYqHxGTImWvrHkzVWNKxYvllmfKI" "0.027904528470665824" "ele:125:ICQAYRVcxiqABLuLUSZrsDtCQCTFbMe" "0.47753076845502873" "ele:126:ycQETDJKxyOXEnXzAlytRgOusgLNkd" "0.8606084882797624" "ele:127:tvmUFgtvmjdxLkTEFnFHLGxhLDSPAUfHRhKLSWYbqa" "0.2695904518559701" "ele:128:BaHcXnCofYiGMaxujBsmBX" "0.825149665561988" "ele:129:JBKxSCR" "0.5873452590489512" "ele:130:YGoDxkbekHCOlecubsBeKjmWezcLEbksCtLLRLzxtzvjWrsmbzNLYKehEP" "0.4853159409847696" "ele:131:IZcFPOMzPHcFIHxowCHSTFrkz" "0.5277987567294383" "ele:132:ljcFEIPIpqvYkqtuTMtTXjbBLQOPRHHrqup" "0.9746883646151202" "ele:133:fYcqTpqdzPZANfWuvHIarLYgYsOUoqlQnKPw" "0.42010203003852076" "ele:134:IZwUCcFtBWLXQmMtlMPwa" "0.6802068264362765" "ele:135:mOEPkdtczWkOlMuGGAFAQSJSAzSguNtlkLNVLRdriYltynDBrE" "0.5605617357048859" "ele:136:TaqJicNvVjnCZNKPJuuiStVfruAlkGgGVaTnMbvCbSoZitGWn" "0.4780678427736166" "ele:137:qtBqNJpcFllvQXdoISfeQrTfcKyuMBqWRKWnmzPpTweQyOZBTQQdpog" "0.9561513047181356" "ele:138:UTOEvbGjBMjYZiBs" "0.8298720638792384" "ele:139:gKXkpmgiTrUqh" "0.6737117765393265" "ele:140:EkktDpJsFgJjhKWTaxldBFqqTNBzdownDwxUZIxYveC" "0.2239791912985728" "ele:141:dyvMXjLusRKyYuvDFHXfLcIodjkniz" "0.3232124237169193" "ele:142:JuESJkOktNOtmFITnZdMXZqPmexwZpETgaTlFVVzpXct" "0.2473393788924324" "ele:143:cpSyDhnVPmGNLmeBsFJufaWWgGOwIjQaAXNzrhGbJDrpbeqFDQamnLu" "0.6849106786577351" "ele:144:VooyGbMEAigOuQtVaVEckAxrSQWNtypiEaQEBLGTtbRkPZvsAyXv" "0.3646945793371218" "ele:145:wzvoPCzE" "0.4263757643063858" "ele:146:EqOnUtiDML" "0.11877588855760746" "ele:147:pZteEnbVnuAOtHIrRGNqclHBYATQxnBuZGBfmnNVfagNEIB" "0.8313214144471833" "ele:148:vbXuqfTwwpCPGUJQtKQKUroVrfNxuuKdHcgtLOBbGvRbbwLvaWjlN" "0.3552235823133526" "ele:149:wTUOXktMFXeuxGgVsbzVWudxXvVFGsB" "0.8670386139794473" "ele:150:uJTtytjczUmGkvsUJQcqcpovnyjcvYUUbLtJCSClvzhaOSJDjS" "0.36577274012963557" "ele:151:lyfmWPlIeqc" "0.24997912597471894" "ele:152:TOwZZHcrChOptJHLflNWYtMacvyAfMOlgdAdJlBwXJfRRzzQzXkcOWFhGdOnLQX" "0.8930265134635483" "ele:153:CqkyWatRYKqEIoUffGbyhbOYEWXmMSCOFiWtVTHSoGBLKGixPGOAHJSwaA" "0.8844448577667497" "ele:154:PpiojYsguWELV" "0.20663410393014814" "ele:155:ebykSXjGhZUYxPFNVUCNSHGNKXESmbthHLdBMIqxoevIKBNVajvToF" "0.6375009411769629" "ele:156:BKyktVmLOkuhGFnj" "0.7758172657193476" "ele:157:TTyfrulmMejuyeUsOqVpxnZlIUKukfBQzfFiWbJtF" "0.7611282500726224" "ele:158:iHCjJFEPDIKAvxzcmHaIka" "0.6032754373225729" "ele:159:HvqgRWNliaavH" "0.03311820686884104" "ele:160:Mc" "0.34191832438430536" "ele:161:ueTQVZrHBiAnDl" "0.4234716642081342" "ele:162:OnmAvoDKw" "0.5301950080950026" "ele:163:QKCLvxWwXHxJcFCEelBdFtEpefx" "0.022733115513385638" "ele:164:vDBwpjkPsgMLSMqORsEaDUPrKSERewhtkSKeiXSg" "0.7166885759719259" "ele:165:XhWRCtQNRxRocWTCaLeAEPwpaZnkTpuXjLdKbOOfYZKkXaSQHhpSXqKXCPmxgvo" "0.2712986802084326" "ele:166:nYfETiDXlAbQRwHV" "0.5341470637872556" "ele:167:pvPkJe" "0.9127872805617512" "ele:168:FDtkhJUZjwqLpzRKOXrlHswdBRwWosyOEWbIWcexvVQMZfPzBB" "0.047439916319365505" "ele:169:BqzapfPLtCxXpDpwXRUIqhuArCXhVbLDVe" "0.7003965818703025" "ele:170:DRWtKsWQBXPylejYIjweSlEUYHjQ" "0.9295842042213984" "ele:171:rpCOjLwmoPSdRSBgAsvnslHoBRjcjVgs" "0.15337097639157538" "ele:172:NBcujL" "0.35038314902687495" "ele:173:BPFNhDL" "0.2972028976456653" "ele:174:jDLdVxGIuQu" "0.05070784214978197" "ele:175:tGvWuCBnevIuRAMJkJM" "0.8737583830123556" "ele:176:usk" "0.2596502464090681" "ele:177:mLdja" "0.6512549702440724" "ele:178:ADVf" "0.171917523837822" "ele:179:GJznUmhoHwfVUKgyPmTcHBSOeXgzbjYjzGGCVFMRapXYdnLaIrqP" "0.9979397420983357" "ele:180:sxmXzXmdFnmLemE" "0.7014210018416481" "ele:181:wkrprcygzJTIyenjHRmbSlKjPkCFZNCpxEfmfHPtJOvhGnmuTJN" "0.47129995449384954" "ele:182:kLMiOVKqDAySJCleSQNmCpxHiWKsiiHAB" "0.9380196572341066" "ele:183:mAPuAsnTTWt" "0.7985363184110637" "ele:184:nsKyWhvIJRENgInWpMcYtlXUdYlrxAmwPsMJNfceYIisVAWkUHXLzkvtCsWE" "0.30436502305230007" "ele:185:MtIHsabFodqvQfXFMohljmJmjySkBQytRvsqiwaZsvqXiFaSBhCASpj" "0.18301728746159307" "ele:186:XvcnJWRlzUTIReQLYEvHanoPk" "0.6830517248352558" "ele:187:mWPnYVSFpfHXZQQAbfPmEjYhlZBmNbiEtrELg" "0.0573871247075346" "ele:188:fcpBmLgqkyICmxewGKyu" "0.7366175249486746" "ele:189:lqenYUoRTmdXgVZSxipJtAANzywKKADhcLjBITUfqrXNSp" "0.6626013234824965" "ele:190:xLRDyJxCopIvZIRnCKccnsqdcmbaEMqPvhzWLFiqZdcoWnTqVtZjVymzWIAXa" "0.9960600588618732" "ele:191:PRteciWuildZLvmEeTCJmgMllDKoOJhJwixuZLBGlbsQvadWVLfhnlV" "0.727874550086809" "ele:192:DMUrMSntsHqYQYxcyFphyVPUK" "0.6604159554316062" "ele:193:pEGlqTKafZFuSDMDOKpGZxdIi" "0.09721821831280353" "ele:194:tzLNAcTqXdGzNFbh" "0.9791379052279395" "ele:195:fB" "0.2838642126919253" "ele:196:gRtNokZLMzuqJRkScwAjS" "0.6981639965614237" "ele:197:fXBKJwUT" "0.9696961287425543" "ele:198:jWFKhNjahnRsbroFeGsfFxwnqqGnahaOFiWjHZorNvhLTxttVJRJQQOFY" "0.4258376716676413" "ele:199:IdmFRBLBHLVjGL" "0.858169214478561" "ele:200:zNJFLPdwPyNXNQKiV" "0.3927031503235572" "ele:201:dRj" "0.237872815865668" "ele:202:pjmoJAOJJUtJvqbsZUaiVJejdqIsiDzdeIfbtDenOfIecKOUiGkQ" "0.11542254177692224" "ele:203:MafcbGHWHjuSFeJnbsmwZSey" "0.5318198291186923" "ele:204:JemvwOIgWnBOsPGsStj" "0.5340725029771403" "ele:205:RTZNBRvrFlroSePZmaZhFiwiLhIVW" "0.17377941268306563" "ele:206:XdkL" "0.30708537669522173" "ele:207:OHUUxtNrNFWGGmCwQXGRCrmTkCIpAXGhVkOrYQ" "0.3642470025832414" "ele:208:qaAxqlRyOUGZKMGUVYKUMOeKTxAJGhWvQNzobjTpgHJmqA" "0.2580334519092651" "ele:209:uyUOGLOzNJScaHhOnWPlsEXonSluZJiTMejoBbmhCBiNPnykKcFLRCPYLQNh" "0.2624285220413499" "ele:210:MuwzwnrcuJwdIKLcWMSbnw" "0.34635829232927273" "ele:211:xyJm" "0.10681423588864192" "ele:212:yovowsSuNWRajWXYNf" "0.8816729069830225" "ele:213:DsOEyomgaAPysPtXOHUsAHRjoaYFAGjkYpfAuzWUyIisUuxhSYgueB" "0.11729073608149843" "ele:214:lYWIYclvxtRgJWlvaqwRxdu" "0.2873790683625198" "ele:215:yvgaPYEzVRGwEYEXRGaAcslGqMMCbCbCCfQxuduv" "0.03381283119846146" "ele:216:oEcjbUMKXHVmheaVDplZJhlzwvohIGSBtimMPkYCwHlVNCEUudhptbDT" "0.6756254954730867" "ele:217:lgkJrJMgdFDLqKbxLuZKuNcIbnzinlnEPO" "0.41449552533526235" "ele:218:zlXNUWHqaCTqefHAyhhsbpjIBwPbRgyKkbNmrxPuRmIspZFJcCavcTIxfvoWxA" "0.493707932686583" "ele:219:BpeNnAZtparUSxZapRlQrmheeSYAwUrmoV" "0.5902863264146183" "ele:220:sKaQfmuFTtIoTWSpOM" "0.5253670876810722" "ele:221:lthVVlxBYtYfhKWbKlmespgrYSqooRsxfEhsJfknVIXRlqxTsxoZiFTDpsxXijW" "0.3979963963224349" "ele:222:dypPPwhZYSSZdLLbaTdqNJvxTbMzLOqbaTsqZoplptkmeVfCoyaUzA" "0.3264162174828448" "ele:223:rWRQxKaqsIHKEIndbSWaRsbtxdLKGmbjIySumpCBTVAGl" "0.5865194234543977" "ele:224:TVWmksLFBdwalaCrcQZRsxBP" "0.28559508093149" "ele:225:lweqdVnCultPdfA" "0.4390884403874875" "ele:226:uwOenAghOaAIzmwlOXrRUTAUnWekan" "0.08146792623238486" "ele:227:NxjScuRQyNcFnWqkRTHLolqrxZRekUBUPtr" "0.56411402327654" "ele:228:TVolwVnFHikQlXWOlzKqZfbSvacowfOABsdeVJLkDPXYmGl" "0.05018525036598798" "ele:229:puOxHskikfnTicBCMzJBLaQnrayTlKspWQu" "0.9726447630383682" "ele:230:SoZUJqIJBKsKgJSEShIwONErhhRgBUqJoqecwqgJrgRkRcidMfLaPBzrpBY" "0.2609811554039797" "ele:231:B" "0.4312484747031583" "ele:232:DoZogQEBRkqEfEzGrnAY" "0.13663455127121937" "ele:233:rYjRcYSynHaSRrVKKJIYI" "0.6922873613563912" "ele:234:bWqKHzRRjENdGkYSOARBsSOwQNLvQbUaKnGxwqaupsxg" "0.26794259830799383" "ele:235:ChaEtSGzPuSjhDOKWYKLJmAGGjPRafTbILOWDTPjECztaBMu" "0.9354162431701218" "ele:236:wfJvpZanAmkVtByeNbReOTsGHuxwpFNmBUNHHKFZG" "0.06293157585414022" "ele:237:WXTGbAxNRqkrEjPrrutKPvGufVmhfdxS" "0.14584091869740912" "ele:238:BaAdncxLcTxXSQrjaDePSS" "0.5768086947048872" "ele:239:NshApWUBkEmPuKNkJcEzdNHGwOzPNbtsjJqwFiRhDGfLJKdpwWIqhomLbV" "0.1465696901238831" "ele:240:jUeWhVOTNZsjeoNuEEiLveNn" "0.8008567772804235" "ele:241:bItAchwIsfNZwxpXMsVzByShOaeidVgPUwHcYlKWbRcdmqVvBDtsr" "0.015881745702420402" "ele:242:zdZZudYQqwmzIdtwriWwnnSBRUjOMxgMyBDFlgifIjPCtRAuFqsIjEYD" "0.708215367473081" "ele:243:YHqmOTBgnTISUeIJJYUYvScqHPhistRICcmpGaVbC" "0.39871686306191767" "ele:244:FhW" "0.9063885465673784" "ele:245:TXtHLEKrnsHVLAUKugMxXYqStLjfOuplXltOeBQJzajnPG" "0.06971324400435519" "ele:246:iBVEpOsIQoRLJNXenfYpXLMMMrLSpjHrFTXbdPvMqMaCrPXSjWwUq" "0.7801801140370873" "ele:247:WQJxHppuKdjrMHEkadNLIBNzbbl" "0.791869958747193" "ele:248:sWCJjeZLjQRozg" "0.11309761860918266" "ele:249:plATLnqtFtSgqqQKdVmdClWzznco" "0.44101158627489334" "ele:250:VojKDXEzXkTK" "0.8836040369092594" "ele:251:RBpRJjERYngmXMJfhQnnCyTEZWJoqVnjeTcqzFzzMlXmvATdihbjl" "0.6308249820355207" "ele:252:UZTymvHpshovPSgGjIDJOxJdjwghvyTBZDHkVQO" "0.5006090429638539" "ele:253:uFpUOJOzJZphVtPaDLJMsyyYwjwFjMRGpDgZe" "0.20079043114588013" "ele:254:zKkpUbLcsdyoLl" "0.8872601871594847" "ele:255:icXC" "0.37517625327876525" "ele:256:nwZmgjIJHB" "0.4472302965803041" "ele:257:CEZcDflAQTNZdzObNbrwLtEqjNgkWbcLcXuZQXJAEqyoGymOYqppuJJjyOPEoPFQ" "0.780663262913547" "ele:258:NbjitZzbvvAnffFGnTBhYqkZRbQlPVvc" "0.6114790546701429" "ele:259:EZYOaVLeDkKLGytYZrxLGRzr" "0.18378642318141092" "ele:260:pWYbNbgRlWPddxsjKHmOW" "0.9576760507667561" "ele:261:sZzqVDT" "0.46086383365401096" "ele:262:mGJfvnLGBwbINxDCEXIRtHdmXyqPlOQhvyvmQTGaHAwZfqLsLjJppkdDdMwwsBv" "0.5751175337887499" "ele:263:NmAoaFQUsjupBVUJSiQbUzexEMKCLVHVrRpJrPzlndc" "0.7387122963781291" "ele:264:YWtBJMQbuojBcfwCHTfh" "0.7526407515005629" "ele:265:ILLeKkqt" "0.8982229649976201" "ele:266:udmQBnKTaKXjlaHyfAvffWdNXIKAMPMbIfVNZMCbMUwvlhNCVRJpMsoU" "0.13915355988685996" "ele:267:TG" "0.11838397899318787" "ele:268:LjoaredUaqedrhRQLJViXILOffWJlDgNaCGhROnZIig" "0.2720595275779307" "ele:269:OLvPf" "0.05213699817329576" "ele:270:TGXeaegcvaWaexsIWJODTEudunbCJWjOnfmKszg" "0.9760555384384879" "ele:271:fCQccupsw" "0.1826479936554769" "ele:272:bTCJyfrkZoFKqxNdCsTLxNAfmXPRCSEdNDrMRlvKCRFrjjPuJxlNFkKnaNQ" "0.1816006773234322" "ele:273:SSicxIfZQttLnNPbzDMvxzfSFhnPHAkfFPeclMecFQvnjLmCQpEwjJiq" "0.644883358870358" "ele:274:rpLDqOGlO" "0.5993794681833459" "ele:275:EbFjBeehfQxqNpOQMUUtGvrJKkZVWxWFJxFCKV" "0.6528913316681816" "ele:276:ewiSyYmEjbtTf" "0.5686335211517553" "ele:277:jeVTPCizAMtXIkuTchJUxkYLeTYQwOneymekogMzIvRxzTDzIMLSvujA" "0.6181915174781923" "ele:278:LFxy" "0.14900559309428074" "ele:279:hfghiprQqSviaaVAiIFKekzwQjWhlkZZlVprXxbaqgHYmnFzEOuTtFwBStUfB" "0.8338524744347505" "ele:280:hqwGMGZVWelRXBEphXvTmwXMeVvJc" "0.771379497890405" "ele:281:HVrnrXGygZsIYancOKsmUaLEkPoUpxQRPG" "0.5994072231684636" "ele:282:lIqDYWuyipeWAOAdBQDuTvsKys" "0.534524220798845" "ele:283:kKTDdgRCCxfiPBundKdDyieG" "0.7242139542264654" "ele:284:ni" "0.748944785839734" "ele:285:PdcemqxiBQyHNkhLpTObryItAXvDpRjjmVHDikyedhTeYAhNwQKMHeVcfApk" "0.13370039714229587" "ele:286:FYwSoEUHBhDBsrJMdzpluc" "0.16028766133142947" "ele:287:aDKzQKcuBfiyyuqHEFHLRRCLRamOUARk" "0.026062274014891695" "ele:288:huXBuVvepspZbb" "0.22018183573052252" "ele:289:AnWyUVUBaTyVmRaUcLZWmStRhKeHAgVckxyFojKTBF" "0.07982614064135407" "ele:290:tgggRahsumg" "0.3697557070272254" "ele:291:rksriVmscvrYXzIYayeHJdvPTaGQCdqXnev" "0.09422878535627355" "ele:292:EABGSXaJ" "0.8325274594683421" "ele:293:CgCfRcqeCzNAHINpiUDuMeBeRLRdcd" "0.9693896699692307" "ele:294:sSatYuMLPzLp" "0.5311474696918715" "ele:295:YAaIFIfsiogCsuvVUgrst" "0.39224110837672066" "ele:296:mEHNOjSErtEsZOtlBJPzCRcXmftzwRPNTBVKYtqVoGZssx" "0.8176954488229201" "ele:297:XUBXZiCSdAUJpFEGVzozodrzsDkFYgezysediNYbMkBGfEsqCqY" "0.6137094587670581" "ele:298:zRtQCUMmJkbIxcWFeJhlrnwvhDOcsCTuQmIUIhiDugArfHxbMMwyyUJtxqhirG" "0.7719959033122741" "ele:299:ebFOLQRWlTZoaDHGTjjtKivqSh" "0.37933435410799776" "ele:300:gZjmUQgmBiqNfiPsOCrjlfeTlEEbOfBVrAwqvO"' - - '"ZADD" "zset:skiplist:2:300" "0.09262750297586564" "ele:1:or" "0.9383651132213807" "ele:2:awUEuWVMajnpzOiOTArpuiSQekbfhVWn" "0.5214936071707239" "ele:3:dLvVjtXgfYwUEOxXFQmag" "0.9079214934215405" "ele:4:wMOfziikZlxOokdQjWovNdHdjFFsDAdJaTsZoQmsnEZarl" "0.9067368627115772" "ele:5:HsmxitflvwMNNhEtFbLO" "0.5918503322692709" "ele:6:ksWvrVzSlLItxbntLMhsJiwEZtZoTefTLdTPucwVBLNEHDkVSBNaNCawnVHq" "0.3360474296101915" "ele:7:VmqzHXRmiQzEsGlfdl" "0.7021374853906152" "ele:8:bNt" "0.40311940256418133" "ele:9:HXRaRKNjkdKs" "0.14791692909385812" "ele:10:PWxaeVvawgdqBTonQoBXTylfhnrLAHXJiHtNQdqQOdTr" "0.5499073150836501" "ele:11:WwqfjEXLLihgdcDuddksFuHVAwFvZgfuVfOeNPHFADpJMNySPsVyNt" "0.6739165529304422" "ele:12:SCtBitWxpz" "0.20235214431676818" "ele:13:cPlWndhlUf" "0.981893336127039" "ele:14:doYXBBDseRsuLWCTFIHAuPUxEducFdUYRQDZfNEvVfuDZXKBdOZnpaOiYW" "0.6255137319908027" "ele:15:vHMz" "0.35225381591612226" "ele:16:FFmOJmOgTObVwKIoXdbQFAkIAThqcmuxgAAOzEFlG" "0.6556189581423885" "ele:17:QMjmHFEILYQBtcbQxsazwEkHG" "0.1086786080705826" "ele:18:aQJgvxcBkRtfGQAMgWYhsnhRuHvWeXOzx" "0.4443262581173478" "ele:19:yzixcbOpFNbGrZTlyAlOFrSPvpkkWqrGodYsZWeipzXpHeZ" "0.03407764418162318" "ele:20:vStWKgLIlsakjbFJd" "0.6036090393945417" "ele:21:jEekc" "0.25987832126438726" "ele:22:KpsJAyUDNdNQzsfSkMDfHZ" "0.22654291425478534" "ele:23:tqI" "0.24666995271407322" "ele:24:LGIGPhYgkxfwbKmXWqvPLbYeHhkFUCLFsnOdnLHYtGyjzZkiIdY" "0.4267692300380157" "ele:25:eXcwFSZJCrCCFJynzpgdQDyMWoXDYwCcfTmNbWkcfbk" "0.6293648111766171" "ele:26:EAMIUZvUsAkDhOgAZOylhhQZNyhPurbXSCdaoTCEiZbKxTzXmEZuoQXLz" "0.9918223572334939" "ele:27:IJviLAjBfTjpnygkNme" "0.5400327173421172" "ele:28:WjVMTKGMQhBtwExljSYstaaoWHCwKTBAjwzUbbOAx" "0.4391638034400295" "ele:29:GaTkBmQtkABFNYXgRXBFQYrngrXCuUjLGzLdoOMSANzbAXGN" "0.5248632352049256" "ele:30:wruIHqSfNHqhQdoWyUrkwToqZjh" "0.4245142889842648" "ele:31:QNrjPwqaFhwvzIvRnDrShNDqVvGHHIDnQddMSDyEdxDMIjZvuQSTtcTERRpqDf" "0.6630427890269389" "ele:32:XsvmtdTG" "0.7021725631889002" "ele:33:zXNKoihjyQxKbVTFCsoexA" "0.5991014496086998" "ele:34:xMAdMecdzpMwLOKLsmVM" "0.4167006541149544" "ele:35:XNPlwYjUbEO" "0.21748473627901788" "ele:36:AfNMHPOCbeAksrJDhTMgToaloyhwouVaw" "0.40372213029096016" "ele:37:ELpdvJAfmUdBcPCnZSCXObXTOWLgiEXnEMlOTGXXPCnswBjbHdxjeBHg" "0.6140401066542219" "ele:38:OHhcyIKEemBnEXrQVcRdZhcKkoGOdHWXNCMzSKusoLHENoHXujdS" "0.7550574793380168" "ele:39:MSYpiWjfKhvpfkBSPVCYgjDKdrN" "0.8269371540962509" "ele:40:cfZEjxhlfRgVZfefeVAPlBHpeJxQQwykwaZjj" "0.7674080844005543" "ele:41:CCLbStaDdBZaTUnJPidjwSbEZeeoNigsjnUQDZnjVnWa" "0.036595137191906546" "ele:42:xiULvOJbNphDvlpwSzdoexRlCXtEnlvAUrkppFBlddyJXwaElEcJMPRoqObnm" "0.5698074730307818" "ele:43:SEvLWl" "0.3369129481509787" "ele:44:VcOjsKDJyinLQIRrVnKCWPjgjbDuNzjiyweNxESMKbrQbugYHsIiPoknumhPR" "0.6422106412803937" "ele:45:IAmzgSECLDxqgd" "0.6894083278054212" "ele:46:PcglhQAZxSfSMxJUMwnDvEzlyrZpPxsNyGBujHQvzddmusSaTHtpAkpdzMsNtg" "0.6450057709395803" "ele:47:TJPQSHCulWh" "0.3070909482618994" "ele:48:blWTtuxKnoRamyEtyRbQjJbYYCRaseaIXXtvBihOIadnSKMyKaFGwWBy" "0.8598262989702926" "ele:49:IVJoggskzWEkHKovKwoOHOmaKbgIUYdINWmChdmr" "0.10354415035880926" "ele:50:kgcLRlwdZFgFhhIENJIspcjGvllDOVLsvZtUrVTMyWDfRpfVz" "0.28928908386800456" "ele:51:AvQiIRwghGePoNguwjfUmvnNpOrsmeHKvjoIcBlQNnNRRlIrXD" "0.5442717124338943" "ele:52:RCTfhiXHCPBwOxtWxdSywwfLquWKLAgMvnZGJSUvPqYndYK" "0.7687123004251277" "ele:53:ZuqUsKCutHPBSYKZBuZJQZhRVyTcYMnUzXFFimIJyzfiJNWn" "0.5345711507419348" "ele:54:sXejHVSkPzasBIBzbBwJNOrmKibrflyQWueOY" "0.9658634461828092" "ele:55:YQPZRMGbtDEpPBEofYZMKKrVHKJkpnXEsmqh" "0.23019227710204926" "ele:56:CufakjBGhcZTOWLtUgznxEDhuvNhFqpBzIrGJtdDouAjRFhLWvQSlFu" "0.6068781157494676" "ele:57:onqdsVasiTWusQQCdCswLqp" "0.8301688570711953" "ele:58:GCsxXdadpevs" "0.5694294722761978" "ele:59:poyUfSRMFmwfErZPJUHlgHlubdBXtQhSJGEpiQRHXfNPHFoVFoWJmrGzNhOP" "0.4493023274389891" "ele:60:k" "0.37642031836089995" "ele:61:YQPaAXgTZiFgtsookRhfWWLMVumXoBodaVNJcHPwb" "0.2228297094226499" "ele:62:ejYqfmTTyrYYvLxPDAse" "0.14198066739390958" "ele:63:fsXUMHeAEejToaWjEhTcrmWMbFFdTRSXUOtGWpEbomwlbiOCxjBkDuargUNurtSL" "0.5233946066825867" "ele:64:TezvDO" "0.4878495944197222" "ele:65:HzsWRNuQBNjMJMoxIfjjlfczTcgfWDJfWlKysFAM" "0.017359009875882236" "ele:66:qvHuOqbAosEcdJqW" "0.4003374590717428" "ele:67:MouLyXUsVzEjmjlLCKqEyGBfCsnenlcvPoFWsERYzTvMNfkLKSgKW" "0.23253292632629075" "ele:68:VjFxenLXwgrkQEAbqklWpggsOMMYeLzxTECqbwwGVwhUGZimqAVURMsxzxm" "0.646901662020837" "ele:69:xColhsZjMEXgAKAKOWKtkoJTUGxRp" "0.8839172533047469" "ele:70:lfmulumeTiacynAyztlI" "0.31940112981806046" "ele:71:OfhTwuZNKxrQLEPWPWLaqNseTfoVbEgBZWqSRCf" "0.9457823004980779" "ele:72:yXkYmdBegJjXwgFpWcZnQnEnonqrUKwLxrpydrxuALbVqLbdQEMeuhQNvYJYCmNL" "0.42349649546528356" "ele:73:nqITDNFxSZCgTrGAlsGR" "0.1491128401167493" "ele:74:wSlpcsEWUAxEfdWdGarbiyZBnHqqXMLbabkR" "0.7164223539226408" "ele:75:aIhaMQxatzemPJXL" "0.45353981831873524" "ele:76:PKyZiUhHjWxRavredJTVpxPfWiSIyw" "0.5055761893027574" "ele:77:fCwJdIVTYUcRpxyVtvgrpOShBVKvuDfnezaEicBSaEkufAYjkbPQZLdmpqA" "0.579969466017893" "ele:78:ttgVNrKMzdhyWKM" "0.37257323396198194" "ele:79:tqhZoSrQzrhOrsVgBimIhUxxIpHCpVgAxXeUEQuQAmwwT" "0.12062537296309861" "ele:80:riTBhsaejufrrtAtSqOowA" "0.42813583015090506" "ele:81:ahRppAcoxMSVLt" "0.6486347611701347" "ele:82:cA" "0.034587858704615115" "ele:83:qqrNxMSTddFARf" "0.7593627828586745" "ele:84:FplVKLwuuOafeOeFSItktKgiy" "0.4994696285128135" "ele:85:tIYVAAegmAqMASVk" "0.11891388133869885" "ele:86:YEmCqaoJjXbJltAOoiFnVQNDuVacCaLlOFaeetedotVui" "0.3894622762499911" "ele:87:JdrKgsAPlek" "0.5336569471727015" "ele:88:hcCtXGaLVHWCgMUlYzUKhduXYLemTyQhEYVFg" "0.920251905287605" "ele:89:jnvoEEFVGKKoOjzUtvfoXhNeTetuiJtaDGEnITEBIFuhPaX" "0.968897738066963" "ele:90:qlwTOlqYcziWhbvBMBTVIgCVFnqpVaPNCTpmSPt" "0.9465629005814513" "ele:91:GOVRIARgGyaAIHPwkeEZzMAnqSyTxFfoqWgM" "0.6059363868454227" "ele:92:SfHzXZvuqNU" "0.7358711669072902" "ele:93:gHeGpNWExpYDynWGcoehLcJEHRAhDZfpHzZAABtY" "0.002391740771283568" "ele:94:uwSSATCqTETlbTuEsmJXbgXAEUltRFNuLGTpMbcNQCwWYt" "0.7158149076298387" "ele:95:HwAliXptdbfTvaAVTOOULUEJyTutsHqnXCWaRTTefOWSWHphznqRhpbJZWs" "0.6038934139572911" "ele:96:VFWrpCzknVyyvPRlvcMNurUszGhKYAJFotTWlsGXFBepexNzhWU" "0.6222780454322215" "ele:97:ehNF" "0.9901469156377757" "ele:98:KnywilEdvSsJWLFHbSZCdGdzwCwqRzZgADKsixcQ" "0.3538196101694284" "ele:99:oBPoRiKlTEbPlNjGYQDBLvUkfozTGdFuP" "0.979768652983662" "ele:100:sFiKSSRMgkIQRuwTcWHjKShPvZdfYHKha" "0.0038377506742498513" "ele:101:Res" "0.2662937612113552" "ele:102:TyAW" "0.2792638772861509" "ele:103:HwgGPitqrKxuhVWgFcnBJPIODYPXtajLeLQxumaekHVdlYfqbmkFnkgiwGAa" "0.1781892660507567" "ele:104:LPuxUVFjLm" "0.04705661819915241" "ele:105:TSouAycARbZOqJrgTwNyjjXrbeXKdVtUMFNswZU" "0.7902202191071308" "ele:106:HPWXuahhazgiqzysESJYkoArGYVcQXJgzOCEUPdOWFFIVJXunbCGGtqqntblixFU" "0.4481460935563768" "ele:107:BJDIpNXqOQWSamkceKuigPXGOLEKPOBSpUHxeoEsqzSvIidEdvcqgYiSVG" "0.3432861842856956" "ele:108:taUgdwQZKdCCodjpsjrhHpANRzpisggAPIUbbNYHEtuvE" "0.42832042624818045" "ele:109:AAOSEmNLVtKbrdVrroPeNRxnxbpnJoTlq" "0.30812383447047176" "ele:110:mXRaSwDGEuPrfoIULekfXFDKYsIzmilkIGYTCeJKwbZhQJrfgQtxFhBARoWJZ" "0.7522373944538988" "ele:111:GgBlqTMGaGyqOFRisSUHUTfCiuUL" "0.21562431158684814" "ele:112:CvwkTqOoXtDtu" "0.8428189114630859" "ele:113:EcWUGnCkfXINMaIgGKkgScPZGIvWuPStFXSAMeOxjXeRptoefDUeIuyJPzRBzRHi" "0.6823372379983094" "ele:114:xzIoKVgZNBRQDQfiUF" "0.13935362874792767" "ele:115:KrpPjoVMOyBmuQqpqT" "0.4332332406044198" "ele:116:UOWNObnoXoaJKzh" "0.08138617832932371" "ele:117:rVhWPfDBDxvwJE" "0.30356446861651587" "ele:118:ZSLbxvYgeGGGiLDww" "0.32067439081280513" "ele:119:bQcKjlcGGQNPqeXDxJDnthZflDwBZEnSosGoXcpgkUACLAMGxw" "0.40934598601386774" "ele:120:cLkEBEgUnFyVcuJGoGcPNYJwilsQjBAw" "0.6433179848407005" "ele:121:nnnQlvic" "0.33121455232187447" "ele:122:NzwulvsTLXrMthvgborfBhEsWPizqgwnTzw" "0.8803242323217817" "ele:123:k" "0.5024021684133856" "ele:124:QxzGwrBCzyjrxScubOiOrGJcTzePOFsPhEHFEzOxkkZCwuUirhETCcjIdoWyA" "0.025065994225742627" "ele:125:jqExxEpycRHNbe" "0.043490094554752834" "ele:126:nareUMxBfzRlJVTvbylndDpEgHoZsZbNDBVInjychmAraHPfaekwZzAwglFw" "0.9816097986428053" "ele:127:IQzEwdcKwNBYqI" "0.6572929124981133" "ele:128:stSHqZwAsTzOsZddsAFwHbfEEsfdII" "0.9613433392746732" "ele:129:dEUztMXSn" "0.6147262075260899" "ele:130:gFwBVpGOtjMuDGVuYRfsFqxLozUbKfIbSnouPpkXziBPLipkyBEToMPgNO" "0.4051062573367158" "ele:131:iYlahFoWqUpvpi" "0.34363782060223536" "ele:132:QzxFJqb" "0.8359405554401546" "ele:133:SwhGBfDsmAFlWxKEuCfBNxdff" "0.22939148700606238" "ele:134:cllbmiogUFJoscJuKiaWvMONpxrWLfuRGMCpvGNFpyMxPJSLvZP" "0.8744608124944555" "ele:135:sYvQFgPAzBKmDspUtlvJdlQVklBHKOFUIHrRoSXgBAVQ" "0.5959086484602159" "ele:136:LPnvKvJYBFLAeCCOQECNeyQsTrPMxvVpqKLjGxKgUBEAhE" "0.9540265436675929" "ele:137:gRldWgnHoDZdu" "0.7669071517114534" "ele:138:DXyqifsGEzBQZNReTCmUGmtUGRjSnYMRjxFpClo" "0.4318348989018863" "ele:139:KtyUQh" "0.39059761540419147" "ele:140:hauqIjYbSoFtMcOOKixBAeGacoockSdTvWdHcqTKUXobKk" "0.24983864913879872" "ele:141:uqZhAekgMEGuxtmrZqmRmJVWoUhhPlyhlghNGmWMFRuxFmFptejHsXs" "0.3210435235914324" "ele:142:CTIJViEGArQbStmcRofVExLPAzMWhDyWQJXDque" "0.18980206607687544" "ele:143:MEcsFtRZtouIWHjYfCXwstdYUpDRmiTQjUkmQDnWi" "0.15361329127026002" "ele:144:dLhflQgp" "0.7110669295479786" "ele:145:meAopAZzKlFlTBIeOETzpEGUjWasknpzyPDfbfugugPOMy" "0.471301584307086" "ele:146:c" "0.453076241949232" "ele:147:hQjzXuyJgtetPOWOxMhUvNJXQbxshZmnSasQsaCEbZglftDYEaNwwoUm" "0.32693695754886076" "ele:148:XbqSlCTEBnEqBzLKGsQ" "0.35856995662107494" "ele:149:EhjPJWQnDvkGAejPAthUUuD" "0.31262357180080613" "ele:150:mHxeZoWhEz" "0.005845222671651107" "ele:151:IyvMEPnFfHSenczOjGODbXJwtMXkuaZFVLntXwtL" "0.9235968098260897" "ele:152:lrpVmOGFgBpPRFjMGZIkJJYPKUKZqRFrUpLqyKTEJBEoleEgCSJZaRxHWXZe" "0.13738091090283422" "ele:153:ntihnyZWbefEPtNiSeQqlVEbqaMSSoCvwZuySkgaTpEVBuaYibjXKCpPPdogPY" "0.8819919106825659" "ele:154:ihNNulMflfjrXcnmwbdTKmwRznOAipcJoPIelWDxaJYtmcixuGWxBsksfIxUWHAg" "0.8932991308660218" "ele:155:segCTllUZbjnrkOODLouJuJXiuAzOvoDcPCggmyMTVzzgudrvwVDX" "0.476578059810815" "ele:156:hDedhNThJbQzAhswOyXSdRPMolSQswuUCeTDlWaAjMtZcBOdoyeBUBxwHAWdlKU" "0.15072385720743042" "ele:157:rDjSR" "0.2161277707711633" "ele:158:ZvNhxpHnEUXOdTdxfRDh" "0.9488145816867642" "ele:159:Q" "0.6787840316052304" "ele:160:sQGndmhzUNtmrDtBzsErELxzfgipMunWyBNABPLhAtCAqbVOXtpPlCeDd" "0.7009800982563948" "ele:161:UwGgQFuNoYhVasdZvJjKEOMcVZJWd" "0.3795646206727531" "ele:162:GdsUALhOYcMICnYiDiYkZVvwhH" "0.017890110952071048" "ele:163:zBqByAKlPKPPOC" "0.5533082346819248" "ele:164:bAdZPWtNjtYoGHdqR" "0.23109286509501725" "ele:165:iUJtSYmwqDRGlMsJREewzEHlvuWaMZPJTCvvgFryO" "0.4713040256603368" "ele:166:wjxQPETQlCQXrRLRTDQGmdTzLlKoUeyMFIRsaNQFhyaJbyXJmlCOSCsHvp" "0.049974994424209385" "ele:167:DGPbIzVMMLUWWjVsevouwaypQhbJyMxjwXsjOkIxTtrtKimvOVC" "0.25554197482909946" "ele:168:yFeyxFl" "0.06546972032558007" "ele:169:OJFPPOAfhqYDChfIsKgmwiaTfDXTUbtEWR" "0.16747563632090212" "ele:170:VfVZvYtxJxcvgOFxPjc" "0.8154729106809464" "ele:171:DmJQkcRAyjgHBMCAFkTucwWQvAICMvtSPXxCZYjBTsgaYxjBEcZeEViUboQA" "0.7721499842095603" "ele:172:KeAwetETxSKBInxxSgcjApglCEEjeapcyAxjKWxWmVUxgedBRvOAuRkXjUZdKqw" "0.5689791211786035" "ele:173:lvGjXnJSwVVaxoNr" "0.8855889473005578" "ele:174:CNroyxiGNciqCZmloBvziBxnjfGcrzWdskAMghlNPyIJ" "0.41912320182786467" "ele:175:ejxnnFYYFrbQVVVTxeLjYeVXWrDZopvmgeBDSHQOPevqXslinL" "0.8035165431612967" "ele:176:VdJifmoOOSJzPOfmpOvrCLFkmtNEmEZqF" "0.6869604080666722" "ele:177:btsGNcuRBzmY" "0.3848414466927291" "ele:178:hnmrVTAOGxtrolmLuvMcDzgBDYEnsOOZvUnOtkxLYPFv" "0.28812018831830133" "ele:179:PXvDrJNIcQFbzQuiYokqPt" "0.11921245346059317" "ele:180:aCufiJDTEkX" "0.024182370939839104" "ele:181:HgnVa" "0.04754239386647818" "ele:182:wosItJxaLEdvLzTjjydyvGqJLUSqT" "0.07505696070559253" "ele:183:rpCPWChrqFvgVEVVKRoWVwOJhVQPTAcEYFz" "0.7810121297050087" "ele:184:VpxhuPTEzZtxYRTVjwNczKXaBkoxhJgbKlLoyVawHuGXunvkJk" "0.7319508963422978" "ele:185:MOwjbZkEMvyOrYFexoyxKFsbexmXqqozGMidaWfES" "0.8182970116273036" "ele:186:RmWeqjsbMYAKOXIpflkbOOiMxRYNrREUFWnBsPywsUTjpRszeVD" "0.13763305291470818" "ele:187:jOsLqpJ" "0.7680871215735682" "ele:188:eFmdPITqTFFhxQFDMxrArrRQNz" "0.9520468889430076" "ele:189:ivzhdLabpxFhrXVumNABm" "0.3334255618135925" "ele:190:jHaWvedsjhAxDTNlXtGMqEggBjmkTARXefpU" "0.02094320460632315" "ele:191:jkMJkvC" "0.782568781581072" "ele:192:CBTuXWkjDEGmCnMoTpvLYZMWbgTHYPzZjmtmXFLRiqeOmTOjZHNjoQo" "0.4130369581381168" "ele:193:IejPDoXOfwXhIBVbWApoqnjm" "0.05032810808761934" "ele:194:GpXjiMttIGORqGmnmKEbUhbvJDtcSEgpwgBqAshNgwuXcoXVzWmN" "0.03562147096755652" "ele:195:TdlepDegXuyVNCYDWpcgWmmTCWTdpdEkxDyduMSOuPdmEdUyMaPepfMgMJQYqfxJ" "0.16058179698958497" "ele:196:dvezkSgvqUSe" "0.19543066541353393" "ele:197:PdrxoChVVQKLNBzhjwNDCbfpZ" "0.543247204423523" "ele:198:cjeiZuqQvFu" "0.33635134143621626" "ele:199:lhZJcssulOevtNgyWxxoNpLvfezhbqgWFJTIDmyxIBzC" "0.5115911058102967" "ele:200:ulngahGBnWlOYgQMBGpxDaupccQfMtbOEPON" "0.3379695196719398" "ele:201:bGtRDNQXwIrwETejqWbnluhGIkIPZpdYmmPTXeowpyneLwHa" "0.2728034878865264" "ele:202:SyQzBNVlAeZKPeRPriqO" "0.5368846611030937" "ele:203:IygYZUGEDlgWTfOebFnhJxOaUAKdRMrimlQOHsvYWd" "0.4539679929781939" "ele:204:HEhoVrszrpmkBDlXjPNFaOrfr" "0.3006834739749523" "ele:205:aROjCcIvSVppcmZvuNFDktThdjDGdHWoAowxMhnBSzmlhwEXzXnGFxINjSfybr" "0.0448639195084084" "ele:206:Tl" "0.5049616444247743" "ele:207:kuhdxIfvoPQppaUlJhUBCtlJzgsxFqelgwmsCbbLv" "0.28294877456995937" "ele:208:zDvaPScfjOwDEfAPsjYAdI" "0.6174513829147165" "ele:209:vqsNtI" "0.18252715540611175" "ele:210:QETJHAoEwrcgWgqMvtpSkxOJIPWKGfDksckQjLy" "0.11630546595702906" "ele:211:SfWoguwffTGTlWKSwrDbLKF" "0.3606182682742908" "ele:212:MbKFUFyFmLLTCfEFgdC" "0.4926337206305448" "ele:213:mdDZaxfdkurWkYykEOMYkPx" "0.6000623954063804" "ele:214:ynHVzFwNLgrrVXYDuGtrufyCVaOzzRfraXTXmxegsCcPeFTSaIVQZqwXCb" "0.2775621516125364" "ele:215:GkhknjnPJlvxwURrjpueAxLAEvSY" "0.7922460208724172" "ele:216:nnDjHaHZMisFPagOGsyRuWIGmkNlxkmrgkotedJGWAZPMwqAVfhHyR" "0.5889353014735185" "ele:217:LjXgi" "0.5497216884074748" "ele:218:jdIUkcxVllwKxk" "0.15158869373843586" "ele:219:lfaHJBQSZxAXoQvQFlPigiVHkZgTuMVws" "0.1471601248923734" "ele:220:ErtZpvDixJoWzYaZeDGLNlyvHj" "0.34543282445022816" "ele:221:T" "0.19990737182076168" "ele:222:YxJjmoYLFozIIwrMYOlTxxQMVnnoRNfMJZNsoFkRgtRJxjWLqanXK" "0.9235704327462902" "ele:223:jknpDgOcYsFJkAdHes" "0.028979981957491407" "ele:224:PecWcubMjFo" "0.4819827930201377" "ele:225:BzYNIyOhFAXYdTkiFMVahLnUBpDiNVtfzHr" "0.7450560599120607" "ele:226:npTXtRZLkvUdRxzjAJhBMxrmMBvhbEgxkhpoLDwRADuYpsRddDmNuMaPjfPbsnxd" "0.2026432885675793" "ele:227:XQzBnvrfYQFiADkbGOfRNEqMnfSsuknCCmcYObVsVYqHX" "0.33615596635066225" "ele:228:gi" "0.2998550975047304" "ele:229:TZRTennwunsTOdkYpeygbUpdbMWAfSXuHW" "0.6648237145509738" "ele:230:WVURIAfgDtEhYPyFqlwEGmSryqDTKOcmZFCN" "0.9372645320573785" "ele:231:udBlpLQIU" "0.3002401369498503" "ele:232:QZtIphwpqQZgcMUmeqQkrZTzatshryjTJIPQYFWkGRwjlqwjigMtlKMMemuKTbMg" "0.25105472672858375" "ele:233:xUkFKUrwJNybmdNQRGVehzHfOuGElLrJuuAYxGqbIoHoHmVWfsPglk" "0.9789489212458264" "ele:234:qsatMznJjZjwVeWoDwAsB" "0.7078139907480708" "ele:235:GaaGmlTHoEgtKbHiKGIFM" "0.1046069368957796" "ele:236:KEflKyuBnrCIoilhIaARgQ" "0.6933650368323319" "ele:237:enRNBKg" "0.8675947064153726" "ele:238:MKHpkdutXQrLuD" "0.9649700026640867" "ele:239:TsTIfIuABLEeAQIwTfJaeHpVxkWiapFXnQTQMJnvLLZyXlRwItuSNswMW" "0.5263629254265921" "ele:240:ocCdGAupDHWtVayoOIdguBoxLIyDRqsvckyTWcXqmVfOROMPKrRp" "0.7524063653536449" "ele:241:hW" "0.19599955008534597" "ele:242:akVJEnuYoJgcIWAnSADGMZuwUfVbIq" "0.15609750914096354" "ele:243:hEUhanHWOxoScINZOwKZrbYdUOBKHtoOFcZsAIzoMEvCsPJegRaQlXobtXnaautk" "0.7890752169170604" "ele:244:Rl" "0.7120506976992904" "ele:245:hoceJlyQdVWNISvutYhokdHFydfUWljaVjTfrNuUDZnBJdm" "0.7417159545801839" "ele:246:zgQTYWnUeOwnYPvtYaN" "0.6658632542669134" "ele:247:UVi" "0.8541463086909872" "ele:248:ohJEVIwKMTixERomyzuLCjFinZgZmqkMZFRLqijAEiHjHUcQgZ" "0.9446951127019414" "ele:249:CcIcveuZxIuoeAyJMaYiwDMLGzdqYOuPExXhZsuVfcWUzr" "0.15818622003981309" "ele:250:JwxuBJCEMZbMJAbsIAwPwUMWkNOmRMvVwlVnMBWbRkSUaTNGtDCiBfXdqWI" "0.549760006394579" "ele:251:JAhok" "0.04924382329883947" "ele:252:JIgeRfRMaTziVyjIdodjtorGgHTeoiYHoSewGEvcvjsTKiFLP" "0.3823858466872766" "ele:253:bjZbtanq" "0.40286373652099416" "ele:254:WlWolwQXSRSZATDgsfdGLuRrOFPaG" "0.3864202824447852" "ele:255:iQNzZfsdAUMpqXRpOyuqJJQfPzhJLcfnstKeqpNyEkUBUsx" "0.30087671810763006" "ele:256:uulbqpiGBlgInmlFKRxUAOlXCLZcRCGyQyEHaXFOEvQai" "0.7410145944905596" "ele:257:GyPpWZoEMASkcgOY" "0.7996004149665447" "ele:258:zZNxkTNMqRlGsYahKYsgsPDCDcIsgVDNUrQijkcJxgGHrI" "0.5402362797766433" "ele:259:iqxwwQCxMUAMJEHVpXEwwN" "0.6362128978606277" "ele:260:MUAqsNaJGfPRaOwkBFQVwLBufjgdIyhusYTPwrmWiyRseJCPODBlzb" "0.4996926196597391" "ele:261:oFUZGTyOAQdfnVCGeoCQqJUibzagyMTmdeKMFjsObfORKkudkIzevOqz" "0.42924714893927196" "ele:262:dNzGqFyCVjeHaWeWqoYQfxBbzdUIJCibOSeoXoyceRCPNNJnoyMQeFnQWlk" "0.5322722081965099" "ele:263:cPLVSPyNeYmivofbOXAZERBvCvJBXvthUlMVOAuPzgjuQNmKDBLSBDqsDesYsv" "0.8777291326872585" "ele:264:KJllfZUWKBMJrwxXBjktUrOHwrtTWOuAVpkssvPjgowDHUNheWZHOQJEYuFszrbl" "0.7072711055085867" "ele:265:EkzJFgpBpqiwSpoXFwcjZljQJDkJeQkbdfcdtGYEhGShlPFXwKnBx" "0.20436439828556952" "ele:266:FqpERXPFhMjCNGCeeyGMpFTCicoKSruuqBdZeeGJKPtKktFoamFo" "0.3472173471264659" "ele:267:YhmHpuDCLfD" "0.18021513778229503" "ele:268:uOiGyqEpsyATQiRwtVvJFRrzSzClsNyDHiaywBXAihdvBdpnWtoffjdOoKyh" "0.5522539745259306" "ele:269:iBiK" "0.8385123045630564" "ele:270:zUvpgWWoOAzbaSrFBvznXoKtHkcAmPwOqivMlixNxq" "0.33714769519639143" "ele:271:MsWzfaaReeRzwqWjGACzUicwZtlEFPrltDAXO" "0.4969992294244491" "ele:272:aANoKjfryoOpWqAhpytocmUHCsWxIAYrSwtiiTxw" "0.44636036938360946" "ele:273:clnfwugmPurOKJqMjxn" "0.27285660039441184" "ele:274:atrzvlsfzPNUvAgptZbMSHbGHhvLQyYUH" "0.500326800049104" "ele:275:RuYDbMeeKwElAXxvXLjExHtcF" "0.5466675758624856" "ele:276:dCEGKvzaWNWcvHVeMAgoocWMwdJyootwqFPMHGKKUMPxCH" "0.2018109903813089" "ele:277:eDuQGFBnossxyIbspBTooBfr" "0.014311547995801921" "ele:278:AYJqzOLPgChWlpdtcaZwHIxLRoMiXelshNtOnDMIvtPJioFxddicddrxj" "0.6159669102868971" "ele:279:ujQJI" "0.9039994047199217" "ele:280:fHiRITtiScqaUlJZhyifQIAaAVHfXWmgHMlyQwOlrNxvpXpRoClYWqndtH" "0.41822330412883957" "ele:281:VRbEUYMjyzfbkRvKYGAxlOjvfrVDWdsfMoNaGNJDUYiNhPnaoYJ" "0.20182675744516632" "ele:282:QLyityIrTBIXSZOdHMheKUACiJNrVJelyo" "0.9536655109799361" "ele:283:UlVmxieouLFT" "0.8985298311311088" "ele:284:QAYdFWfyObPVqDkJoJWakCV" "0.8723763850119008" "ele:285:UqMDNekVComtOxijGYdhNkmRimugdNt" "0.5379751008291339" "ele:286:vzWRFCEvBJrOrxlPIiAxbqDByXGE" "0.37873243809375445" "ele:287:zBrbywqJeVbezx" "0.4779307824595257" "ele:288:DOMbWHcXdPYBWUjyLnqHBgVindbTWXxTzaRcVawIbUqHYFDecXMLc" "0.9342932630637866" "ele:289:UiAnOVrnvvtuyTBABOkaRFNIkHfogJCNrNTKXrqcC" "0.034545001035145906" "ele:290:Fz" "0.40461815986202543" "ele:291:klzKqsrhNAxHPnQUjeQXfSQMIIZwWtAFYYBKuqWhNqUnnZpgRrblAPVtoDB" "0.7300189023460038" "ele:292:YFXCvQGOMKOewMiEilWwRQp" "0.1378877900987362" "ele:293:HMlNQLAKOslfMwwUOqEwwuowDEKZ" "0.9649651643860695" "ele:294:DmNeQumEcMMOMhsBZMrKRNhnDwYXKMm" "0.25366932043182866" "ele:295:LrBATkEONciKHMYPEBRTdGLIqYJolXTgMepcMQlQxbdaXkxMYAIlZhqoayDQn" "0.33409580445339604" "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' + - '"ZADD" "zset:skiplist:1:300" "0.652540306855235" "ele:1:UaZtxmrKBkxhBqJOlNJlwVUfHVALGkjnUemvubDvbGSVAaaQkXLlsg" + "0.8731899671198792" "ele:2:RKlVyoHMTvZcoh" "0.0785627468533846" "ele:3:VZWJQlqLBHicktajowIvkyuaddTC" + "0.7688563664469605" "ele:4:YaXTxnRGWhENdaOFuXNAJmx" "0.0033318113277969186" "ele:5:JjfFkvonkksjIfHS" + "0.49606648747577575" "ele:6:Q" "0.8234766164292862" "ele:7:MZgqGWzeYWDAlplbxvlzllKR" + "0.42687597903639085" "ele:8:AGSAuhePDVmONKmViHovKsiIGSXQZdqX" "0.34912978268081996" + "ele:9:ZHIKgOWejxTOcrVCRxztCNqtVFEdqCbowiaROZfbhMmzFlr" "0.15838599188422475" + "ele:10:UuyeNtxYcAmkfjtovBmajhGcYvzucpgFjLnqKIw" "0.4376432899068222" "ele:11:cfgHnJGQAHaXHjLIuLWYkDACbxQbywRIQMbuE" + "0.5536939917085721" "ele:12:uyZtiyKNdKhFhgNlcdtnHgDFEdBoovVYkyLIpREln" "0.403546330051068" + "ele:13:kRUDWaPmeYXeJZhgqKpnroFxUSCQ" "0.8808108541089766" "ele:14:PCGgHbGIRxpzFRfADhupCtBKhknUNyqK" + "0.23044636914343264" "ele:15:OaHUUrbZEvSOmYOtbUzxnJq" "0.6404180580960533" "ele:16:qJabjKLYYivniNNtGsbnBzRLzYP" + "0.6907030016224224" "ele:17:KJrGsIeQESEPkBdTgUhrQuAUzEfySPhVBoNaWDjOawkRrjyktuOMuBcwp" + "0.24900135884008867" "ele:18:bwQzFiMXWxSKtYJiFCSaDWxoAEoNGvFsMoAugjlIcWTRWhXyixemQnagvqL" + "0.7928656841898908" "ele:19:NKtwuzbLhLCCPupqgkRsRdGijHmSrnqwdfSj" "0.9331302297178864" + "ele:20:TcZibcjyBLAbljRGHjFgwVeVjbeZwi" "0.640319798434186" "ele:21:nsmIvzevkqEJkJTiybCjqiXRjJVMqSqsSaHKxTzJmygg" + "0.5239886233297175" "ele:22:DZGleQLgYgAjWUcCOhzqsi" "0.6136266546940706" "ele:23:ZVlOgBjrpZhQuQzJYVLYqnxytasTT" + "0.6591139297465682" "ele:24:AFgEEoLcwlGmoWeYLZZJnlilPagiaWdqhItaEMLovOfbaPAgtCeeyjCuEV" + "0.4468461455464968" "ele:25:pAjBRwToyaDwhSExhMreHmbgzPuJFPlpVrBbjhkyogmUAQamL" + "0.5614231865616031" "ele:26:KyArAdlPTTgxCatXdDQIPgZWHCBZicfkZjCKCbuAuvA" "0.022487789155224203" + "ele:27:qOuBflYpFEUWKIfvrIuZYEwJYtSIwSlvegDBDYCUTKnBoRWpwDuBAHgYbTwURCW" "0.8510804209364501" + "ele:28:QcjxLOamZbsRzGPlmSvuvBpYmDaooLoY" "0.43460695876638156" "ele:29:WcTDiiDHQwNoubgkihXThvM" + "0.5610492156901229" "ele:30:XPGwnyfBmCnhkPlJxhZhPrjvXoGKWEWbqrFvZauVZGQ" "0.7513407089150304" + "ele:31:MTXpbeTMlXoxUsCDccRYHeKKfYunLBZuHbLgJmNStiiALTm" "0.09175823221394674" + "ele:32:vkAxXiwoCWTBUFUVtpBfpAlILPGaMvUrFaRuBqEgqvWnISaZaPTxiklQtzGS" "0.8586634748104288" + "ele:33:wyThKKWAeRg" "0.36952587840155204" "ele:34:cRkudmpGSSMUnPOMhPSzjQ" "0.538356756374977" + "ele:35:TsRYebuuDgtamrxVbrxOaCBUGWEaGheHKWgzWsgPxVBfLwAev" "0.5218317459277027" + "ele:36:N" "0.658938125456635" "ele:37:mAI" "0.8474868095237909" "ele:38:JrYvYRtaFZldysTlMUVfZfVpHrSzayZGWysedghOV" + "0.20143282352735015" "ele:39:WjaRWpmPlWwPuepbXywfDmqIEPWnBh" "0.23967093347793234" + "ele:40:ZCLtDpzxZHqWUMzAJOfavhqZrGrPiGZQSBYDPqfyqqYAbGIHuyskvLk" "0.8108325344648399" + "ele:41:WhxmpALjwYdCOMwTeHRbFRSFfktMmQUVItotZiICjWfwebl" "0.1322111892750637" + "ele:42:dfVVGlvVTMufbfSsy" "0.2285660170875491" "ele:43:DBqEkifRzIyvzTydaSqNrqalAXBZAkccYOuIBFEn" + "0.9396586731821924" "ele:44:NyIOQsgOAQevXYKYhGZXjVzTeqPiwjdJhtq" "0.32374056012496966" + "ele:45:TQYLPdswKkUntJEjvGWJTWxmVJGdBcbIclOrYzVqqtfFznolqcHYTVj" "0.9080986140709963" + "ele:46:IdUdmeLZNHLsCGaVkEdfKMemYRdzhQUqvhuQdXnYchGWXyYRAYZQWkb" "0.3129458198716534" + "ele:47:LJFPbCuN" "0.39349745859330765" "ele:48:YTPdFVszdCVVgGGHKqoQxfjU" "0.14704886640549086" + "ele:49:fOFwwDNEsxjfpkUrwd" "0.9168814654086035" "ele:50:rJSASiFxeYIINRbbgTBqPbATrcKOP" + "0.3100306836090321" "ele:51:VKKOyHveatcnmQR" "0.2370937718635434" "ele:52:OCaIAjJkxSLYaWpMAVjmQoOXoZJMcAO" + "0.4941647120371836" "ele:53:neeyLswlmLnZXSCDtFx" "0.269336828778751" "ele:54:UuIrk" + "0.12151325035284255" "ele:55:FmCgjvkoPmAcscWZixkzsFgsQBGAmDHqFSTaKcUdfxlfYWu" + "0.0035001439463812067" "ele:56:aThlZZWlDITljruiWa" "0.5009568203132024" "ele:57:TBszlGVnMdDvMOLiCysTjjANuFqeq" + "0.4783242512285928" "ele:58:dafCundgmRFJLzTEexYHeprmCXFjxrJYLZAcsLXhTrgC" "0.531664059031722" + "ele:59:reqfWtmvctIfWtqVEuaTEGfarDa" "0.47961187976147" "ele:60:CBvTozpAXrLpS" + "0.10226598211977789" "ele:61:eGQCebwBiUOPhMfrVRHiThsDeIFzPDEKHczj" "0.721486119508813" + "ele:62:nHhoxBCSgFFhJWBhTSVVXBpdFoLKYYKZmWEgvCfa" "0.3044462915617381" "ele:63:AMu" + "0.8380361220680647" "ele:64:tQiutM" "0.7791893412340167" "ele:65:jcKQrBTFeuiuHCprihKx" + "0.9140067046543505" "ele:66:bHuocqbTLhTHlHKIfDdemFDPwrcYFeJrXXafsATvSmFvKGYKRJYnqFmwKoRuaptI" + "0.6755477551341951" "ele:67:sJuZYHZFrVYyTvMdbMZJDuCqUmpRIsEgizBVplIPCkSAtGc" + "0.843803368180551" "ele:68:WgcCuSQuSzcvSPOzzXViuXfnOtBSxjm" "0.4683803962889672" + "ele:69:CqNaseFeIzhsgZdZDgySGfNawLz" "0.300477038321727" "ele:70:pLiQVPjQuEROtmKceRjEcaiZxMvMSIeailtKgwUeVsgqQUdTUbWg" + "0.6782593142253811" "ele:71:bgbVdSCYQstqQQloWsJLCYYrmdvtmKeNXDfWGHvzdyTFuuiMwSxuSZa" + "0.09916181882671649" "ele:72:jHWIgQCltkPBgzLWWTfRJlLFrxesFUmaJzfeeKDsFglvPAwNIDCDdlvicM" + "0.031870198089671176" "ele:73:YfsobnenpUlKHCXNgKYVeWHNRFEPOsAU" "0.9753495730511261" + "ele:74:OHVmNYCiDZFlkmsqhwgc" "0.6796131843206142" "ele:75:CPVsbsqYVeWPVRsTZKTvlcDwHnUzHpZyEchJqxnbrWM" + "0.41149806297291536" "ele:76:MGFGt" "0.0635854843880973" "ele:77:xVozQKiljlffdYDherQcdYdEmEX" + "0.17349539011413317" "ele:78:SORWOElEDHqZuOvYslqzY" "0.6957717601786134" "ele:79:XNVNKDBXRoFHDAu" + "0.514568844593022" "ele:80:GTagGWDGPcixUFOSdZTBaKpiJSPiKhmyricEAMLBwjQyEXmJIZn" + "0.5054082476784039" "ele:81:YOxGoUKeShnXhcdvTJQFGTukjSiRZFidGRfkttgXJBeKKnJebZNubpk" + "0.5791117949403571" "ele:82:PFfNxLyEMLCXtgEQVpFVGxadSZeOXdaSCaQmDBrMdJLSlIXAnerUpaF" + "0.6869490812905924" "ele:83:EDFLipKWqONzJ" "0.5858117779265328" "ele:84:ufGNBddDuAsmqgFMQYqtMrOTUbOiexjEYqLKdPLscwavpbHWCbGvMSKfkp" + "0.3328807181469634" "ele:85:kIxgjCASHjQbqrvhxiPozqCtRVebWwuHCptoxBJ" "0.5593178033061493" + "ele:86:BHmhWwOEWhCelxVLRsUSiAsSicrsXyAYhbrOWaDtKVVDyVpgTtkbO" "0.9568394270185203" + "ele:87:XrsvMeAof" "0.2895493213801318" "ele:88:eVIlCARlsKEygkqngxlVoJIhthE" "0.36404485659899855" + "ele:89:tAahXQIJDAbNWOgsSyAUkgwVcIzNvkawniDRxludhXrgdbReUJWKaDjPkLNCi" "0.6751249599564046" + "ele:90:zUNDGaygGLVztZyQgSMyevPstQKjDVTMafZnepYqPvANg" "0.4002349143471098" "ele:91:blBkPgUMFnFxBlocRBolScezbONPxsKrGsdsMsiZWrhuRsINONXImqQlQY" + "0.4373588125087955" "ele:92:LpfFjgOkMnuixmgfGamVKyPICLQQzNKmdJaJRnflC" "0.8323339473420782" + "ele:93:TsvDvTRrfMUEskXqXTEHTKzYcuzaoBTAyKVkcnvvqRTgXItNQwJ" "0.7464672802658118" + "ele:94:GpXkYQokvVduxNQfcaSYTSiZsOMxrAlNMtPPdWCLKWWqbeunMDLgkIRRu" "0.15234267491477727" + "ele:95:bTapHmxvqZNdGNP" "0.42610519579163275" "ele:96:DllLIwysTAcQqwVPjAGkGEedTflBevgZmdgwMbKpNdKJoWGteGWJwyhrI" + "0.05073435890699274" "ele:97:uoKiwzrJXTOqaDpeWknKEXdTkQziOGXjZZikNbaEPwOMFvlKoERaUq" + "0.8053618509879708" "ele:98:UYuKZw" "0.21335197746306034" "ele:99:OqRQLePoVHjfSoZV" + "0.9955843393406656" "ele:100:s" "0.8638417234689056" "ele:101:uninyp" "0.6170733682662144" + "ele:102:lAEvUqfinjrCuTdqJeZpMOqTGvxPeGRyPlQgwunbDdbTEwCsIiUsteGjmwH" "0.21067098312505894" + "ele:103:cLsWBIpwTWpKBrmSXb" "0.028805240455834213" "ele:104:ySsyBzpsJRyLIAkqneYVrUXPSZVHjpEYkuPt" + "0.011280501394645426" "ele:105:LoyMrzfbpcBTBvjgSaalQslVYEsvOjWxPFeLL" "0.8115524648082592" + "ele:106:PemidyGhQD" "0.035339107659025926" "ele:107:udmOOXuqRqJxINvXvFplPC" "0.4088305270182697" + "ele:108:KpDIy" "0.7970215729800464" "ele:109:ADZJJiLuNsGIaWjDtovm" "0.6539941469274039" + "ele:110:wkRPjlYtkmmRJGsaKTTlNqggqMJEqPziZOGtDlMoEQBFcJZgJSTJdwEAv" "0.6393759361590676" + "ele:111:SqLVSBeiOrFcbKmUUqeFvXcyXmfPuAFnRgaiFHPUUhlHHNkzbGjeIPVJS" "0.2775184026673655" + "ele:112:NCSCTxgpSSGUSVzcWWZVcGlEwoVuKkjwzMYPOTBjvHHgTxuwPjLOpJCTpQnK" "0.8279369714332658" + "ele:113:VfSDdgYSpSeXVhbfntnUfUchciRBrJBZDrvxMPhOiIp" "0.8297173264793561" "ele:114:TXarLyioSIyrUKkOeMXvaJvJaknKVQeaNErnRoufOnArsovay" + "0.921999914094598" "ele:115:luAfTJtIHOjwkvrAmjILtyLShtdxPljZptJJQVhhAhCzzBe" + "0.1408651634335023" "ele:116:SEpIqRVTaiuoxSCVlaVHjClWDwMEqaBUPMjoEAxzzQgylhwdbYkJu" + "0.9948615128480278" "ele:117:ruBCNLrVXV" "0.28579196360737913" "ele:118:rVSIXyykbQnnnQEPddYhrTskBJVTwatBoNFCIyajGejYyDzK" + "0.48423755726111095" "ele:119:xgSdRSFMaNILA" "0.7626249612557783" "ele:120:EwYCAzoAXXaXkVnxrtBULVzEoRUc" + "0.8752501969266744" "ele:121:LfegRMqEenhHURSmftuFgmOXRtOKcVsTpWqqQxuybwdAWBJduQZxCNyWCz" + "0.18280846923814642" "ele:122:GRqtlaLHKmwlLyzsVuSRZX" "0.37855655211354067" "ele:123:YyuHDEqKXwhJkmKKLIRMCbiwrrldSooerdtGFSAAQfWLg" + "0.5528763818820261" "ele:124:ynUYqHxGTImWvrHkzVWNKxYvllmfKI" "0.027904528470665824" + "ele:125:ICQAYRVcxiqABLuLUSZrsDtCQCTFbMe" "0.47753076845502873" "ele:126:ycQETDJKxyOXEnXzAlytRgOusgLNkd" + "0.8606084882797624" "ele:127:tvmUFgtvmjdxLkTEFnFHLGxhLDSPAUfHRhKLSWYbqa" "0.2695904518559701" + "ele:128:BaHcXnCofYiGMaxujBsmBX" "0.825149665561988" "ele:129:JBKxSCR" "0.5873452590489512" + "ele:130:YGoDxkbekHCOlecubsBeKjmWezcLEbksCtLLRLzxtzvjWrsmbzNLYKehEP" "0.4853159409847696" + "ele:131:IZcFPOMzPHcFIHxowCHSTFrkz" "0.5277987567294383" "ele:132:ljcFEIPIpqvYkqtuTMtTXjbBLQOPRHHrqup" + "0.9746883646151202" "ele:133:fYcqTpqdzPZANfWuvHIarLYgYsOUoqlQnKPw" "0.42010203003852076" + "ele:134:IZwUCcFtBWLXQmMtlMPwa" "0.6802068264362765" "ele:135:mOEPkdtczWkOlMuGGAFAQSJSAzSguNtlkLNVLRdriYltynDBrE" + "0.5605617357048859" "ele:136:TaqJicNvVjnCZNKPJuuiStVfruAlkGgGVaTnMbvCbSoZitGWn" + "0.4780678427736166" "ele:137:qtBqNJpcFllvQXdoISfeQrTfcKyuMBqWRKWnmzPpTweQyOZBTQQdpog" + "0.9561513047181356" "ele:138:UTOEvbGjBMjYZiBs" "0.8298720638792384" "ele:139:gKXkpmgiTrUqh" + "0.6737117765393265" "ele:140:EkktDpJsFgJjhKWTaxldBFqqTNBzdownDwxUZIxYveC" "0.2239791912985728" + "ele:141:dyvMXjLusRKyYuvDFHXfLcIodjkniz" "0.3232124237169193" "ele:142:JuESJkOktNOtmFITnZdMXZqPmexwZpETgaTlFVVzpXct" + "0.2473393788924324" "ele:143:cpSyDhnVPmGNLmeBsFJufaWWgGOwIjQaAXNzrhGbJDrpbeqFDQamnLu" + "0.6849106786577351" "ele:144:VooyGbMEAigOuQtVaVEckAxrSQWNtypiEaQEBLGTtbRkPZvsAyXv" + "0.3646945793371218" "ele:145:wzvoPCzE" "0.4263757643063858" "ele:146:EqOnUtiDML" + "0.11877588855760746" "ele:147:pZteEnbVnuAOtHIrRGNqclHBYATQxnBuZGBfmnNVfagNEIB" + "0.8313214144471833" "ele:148:vbXuqfTwwpCPGUJQtKQKUroVrfNxuuKdHcgtLOBbGvRbbwLvaWjlN" + "0.3552235823133526" "ele:149:wTUOXktMFXeuxGgVsbzVWudxXvVFGsB" "0.8670386139794473" + "ele:150:uJTtytjczUmGkvsUJQcqcpovnyjcvYUUbLtJCSClvzhaOSJDjS" "0.36577274012963557" + "ele:151:lyfmWPlIeqc" "0.24997912597471894" "ele:152:TOwZZHcrChOptJHLflNWYtMacvyAfMOlgdAdJlBwXJfRRzzQzXkcOWFhGdOnLQX" + "0.8930265134635483" "ele:153:CqkyWatRYKqEIoUffGbyhbOYEWXmMSCOFiWtVTHSoGBLKGixPGOAHJSwaA" + "0.8844448577667497" "ele:154:PpiojYsguWELV" "0.20663410393014814" "ele:155:ebykSXjGhZUYxPFNVUCNSHGNKXESmbthHLdBMIqxoevIKBNVajvToF" + "0.6375009411769629" "ele:156:BKyktVmLOkuhGFnj" "0.7758172657193476" "ele:157:TTyfrulmMejuyeUsOqVpxnZlIUKukfBQzfFiWbJtF" + "0.7611282500726224" "ele:158:iHCjJFEPDIKAvxzcmHaIka" "0.6032754373225729" "ele:159:HvqgRWNliaavH" + "0.03311820686884104" "ele:160:Mc" "0.34191832438430536" "ele:161:ueTQVZrHBiAnDl" + "0.4234716642081342" "ele:162:OnmAvoDKw" "0.5301950080950026" "ele:163:QKCLvxWwXHxJcFCEelBdFtEpefx" + "0.022733115513385638" "ele:164:vDBwpjkPsgMLSMqORsEaDUPrKSERewhtkSKeiXSg" "0.7166885759719259" + "ele:165:XhWRCtQNRxRocWTCaLeAEPwpaZnkTpuXjLdKbOOfYZKkXaSQHhpSXqKXCPmxgvo" "0.2712986802084326" + "ele:166:nYfETiDXlAbQRwHV" "0.5341470637872556" "ele:167:pvPkJe" "0.9127872805617512" + "ele:168:FDtkhJUZjwqLpzRKOXrlHswdBRwWosyOEWbIWcexvVQMZfPzBB" "0.047439916319365505" + "ele:169:BqzapfPLtCxXpDpwXRUIqhuArCXhVbLDVe" "0.7003965818703025" "ele:170:DRWtKsWQBXPylejYIjweSlEUYHjQ" + "0.9295842042213984" "ele:171:rpCOjLwmoPSdRSBgAsvnslHoBRjcjVgs" "0.15337097639157538" + "ele:172:NBcujL" "0.35038314902687495" "ele:173:BPFNhDL" "0.2972028976456653" + "ele:174:jDLdVxGIuQu" "0.05070784214978197" "ele:175:tGvWuCBnevIuRAMJkJM" "0.8737583830123556" + "ele:176:usk" "0.2596502464090681" "ele:177:mLdja" "0.6512549702440724" "ele:178:ADVf" + "0.171917523837822" "ele:179:GJznUmhoHwfVUKgyPmTcHBSOeXgzbjYjzGGCVFMRapXYdnLaIrqP" + "0.9979397420983357" "ele:180:sxmXzXmdFnmLemE" "0.7014210018416481" "ele:181:wkrprcygzJTIyenjHRmbSlKjPkCFZNCpxEfmfHPtJOvhGnmuTJN" + "0.47129995449384954" "ele:182:kLMiOVKqDAySJCleSQNmCpxHiWKsiiHAB" "0.9380196572341066" + "ele:183:mAPuAsnTTWt" "0.7985363184110637" "ele:184:nsKyWhvIJRENgInWpMcYtlXUdYlrxAmwPsMJNfceYIisVAWkUHXLzkvtCsWE" + "0.30436502305230007" "ele:185:MtIHsabFodqvQfXFMohljmJmjySkBQytRvsqiwaZsvqXiFaSBhCASpj" + "0.18301728746159307" "ele:186:XvcnJWRlzUTIReQLYEvHanoPk" "0.6830517248352558" + "ele:187:mWPnYVSFpfHXZQQAbfPmEjYhlZBmNbiEtrELg" "0.0573871247075346" "ele:188:fcpBmLgqkyICmxewGKyu" + "0.7366175249486746" "ele:189:lqenYUoRTmdXgVZSxipJtAANzywKKADhcLjBITUfqrXNSp" + "0.6626013234824965" "ele:190:xLRDyJxCopIvZIRnCKccnsqdcmbaEMqPvhzWLFiqZdcoWnTqVtZjVymzWIAXa" + "0.9960600588618732" "ele:191:PRteciWuildZLvmEeTCJmgMllDKoOJhJwixuZLBGlbsQvadWVLfhnlV" + "0.727874550086809" "ele:192:DMUrMSntsHqYQYxcyFphyVPUK" "0.6604159554316062" "ele:193:pEGlqTKafZFuSDMDOKpGZxdIi" + "0.09721821831280353" "ele:194:tzLNAcTqXdGzNFbh" "0.9791379052279395" "ele:195:fB" + "0.2838642126919253" "ele:196:gRtNokZLMzuqJRkScwAjS" "0.6981639965614237" "ele:197:fXBKJwUT" + "0.9696961287425543" "ele:198:jWFKhNjahnRsbroFeGsfFxwnqqGnahaOFiWjHZorNvhLTxttVJRJQQOFY" + "0.4258376716676413" "ele:199:IdmFRBLBHLVjGL" "0.858169214478561" "ele:200:zNJFLPdwPyNXNQKiV" + "0.3927031503235572" "ele:201:dRj" "0.237872815865668" "ele:202:pjmoJAOJJUtJvqbsZUaiVJejdqIsiDzdeIfbtDenOfIecKOUiGkQ" + "0.11542254177692224" "ele:203:MafcbGHWHjuSFeJnbsmwZSey" "0.5318198291186923" + "ele:204:JemvwOIgWnBOsPGsStj" "0.5340725029771403" "ele:205:RTZNBRvrFlroSePZmaZhFiwiLhIVW" + "0.17377941268306563" "ele:206:XdkL" "0.30708537669522173" "ele:207:OHUUxtNrNFWGGmCwQXGRCrmTkCIpAXGhVkOrYQ" + "0.3642470025832414" "ele:208:qaAxqlRyOUGZKMGUVYKUMOeKTxAJGhWvQNzobjTpgHJmqA" + "0.2580334519092651" "ele:209:uyUOGLOzNJScaHhOnWPlsEXonSluZJiTMejoBbmhCBiNPnykKcFLRCPYLQNh" + "0.2624285220413499" "ele:210:MuwzwnrcuJwdIKLcWMSbnw" "0.34635829232927273" "ele:211:xyJm" + "0.10681423588864192" "ele:212:yovowsSuNWRajWXYNf" "0.8816729069830225" "ele:213:DsOEyomgaAPysPtXOHUsAHRjoaYFAGjkYpfAuzWUyIisUuxhSYgueB" + "0.11729073608149843" "ele:214:lYWIYclvxtRgJWlvaqwRxdu" "0.2873790683625198" "ele:215:yvgaPYEzVRGwEYEXRGaAcslGqMMCbCbCCfQxuduv" + "0.03381283119846146" "ele:216:oEcjbUMKXHVmheaVDplZJhlzwvohIGSBtimMPkYCwHlVNCEUudhptbDT" + "0.6756254954730867" "ele:217:lgkJrJMgdFDLqKbxLuZKuNcIbnzinlnEPO" "0.41449552533526235" + "ele:218:zlXNUWHqaCTqefHAyhhsbpjIBwPbRgyKkbNmrxPuRmIspZFJcCavcTIxfvoWxA" "0.493707932686583" + "ele:219:BpeNnAZtparUSxZapRlQrmheeSYAwUrmoV" "0.5902863264146183" "ele:220:sKaQfmuFTtIoTWSpOM" + "0.5253670876810722" "ele:221:lthVVlxBYtYfhKWbKlmespgrYSqooRsxfEhsJfknVIXRlqxTsxoZiFTDpsxXijW" + "0.3979963963224349" "ele:222:dypPPwhZYSSZdLLbaTdqNJvxTbMzLOqbaTsqZoplptkmeVfCoyaUzA" + "0.3264162174828448" "ele:223:rWRQxKaqsIHKEIndbSWaRsbtxdLKGmbjIySumpCBTVAGl" "0.5865194234543977" + "ele:224:TVWmksLFBdwalaCrcQZRsxBP" "0.28559508093149" "ele:225:lweqdVnCultPdfA" + "0.4390884403874875" "ele:226:uwOenAghOaAIzmwlOXrRUTAUnWekan" "0.08146792623238486" + "ele:227:NxjScuRQyNcFnWqkRTHLolqrxZRekUBUPtr" "0.56411402327654" "ele:228:TVolwVnFHikQlXWOlzKqZfbSvacowfOABsdeVJLkDPXYmGl" + "0.05018525036598798" "ele:229:puOxHskikfnTicBCMzJBLaQnrayTlKspWQu" "0.9726447630383682" + "ele:230:SoZUJqIJBKsKgJSEShIwONErhhRgBUqJoqecwqgJrgRkRcidMfLaPBzrpBY" "0.2609811554039797" + "ele:231:B" "0.4312484747031583" "ele:232:DoZogQEBRkqEfEzGrnAY" "0.13663455127121937" + "ele:233:rYjRcYSynHaSRrVKKJIYI" "0.6922873613563912" "ele:234:bWqKHzRRjENdGkYSOARBsSOwQNLvQbUaKnGxwqaupsxg" + "0.26794259830799383" "ele:235:ChaEtSGzPuSjhDOKWYKLJmAGGjPRafTbILOWDTPjECztaBMu" + "0.9354162431701218" "ele:236:wfJvpZanAmkVtByeNbReOTsGHuxwpFNmBUNHHKFZG" "0.06293157585414022" + "ele:237:WXTGbAxNRqkrEjPrrutKPvGufVmhfdxS" "0.14584091869740912" "ele:238:BaAdncxLcTxXSQrjaDePSS" + "0.5768086947048872" "ele:239:NshApWUBkEmPuKNkJcEzdNHGwOzPNbtsjJqwFiRhDGfLJKdpwWIqhomLbV" + "0.1465696901238831" "ele:240:jUeWhVOTNZsjeoNuEEiLveNn" "0.8008567772804235" "ele:241:bItAchwIsfNZwxpXMsVzByShOaeidVgPUwHcYlKWbRcdmqVvBDtsr" + "0.015881745702420402" "ele:242:zdZZudYQqwmzIdtwriWwnnSBRUjOMxgMyBDFlgifIjPCtRAuFqsIjEYD" + "0.708215367473081" "ele:243:YHqmOTBgnTISUeIJJYUYvScqHPhistRICcmpGaVbC" "0.39871686306191767" + "ele:244:FhW" "0.9063885465673784" "ele:245:TXtHLEKrnsHVLAUKugMxXYqStLjfOuplXltOeBQJzajnPG" + "0.06971324400435519" "ele:246:iBVEpOsIQoRLJNXenfYpXLMMMrLSpjHrFTXbdPvMqMaCrPXSjWwUq" + "0.7801801140370873" "ele:247:WQJxHppuKdjrMHEkadNLIBNzbbl" "0.791869958747193" + "ele:248:sWCJjeZLjQRozg" "0.11309761860918266" "ele:249:plATLnqtFtSgqqQKdVmdClWzznco" + "0.44101158627489334" "ele:250:VojKDXEzXkTK" "0.8836040369092594" "ele:251:RBpRJjERYngmXMJfhQnnCyTEZWJoqVnjeTcqzFzzMlXmvATdihbjl" + "0.6308249820355207" "ele:252:UZTymvHpshovPSgGjIDJOxJdjwghvyTBZDHkVQO" "0.5006090429638539" + "ele:253:uFpUOJOzJZphVtPaDLJMsyyYwjwFjMRGpDgZe" "0.20079043114588013" "ele:254:zKkpUbLcsdyoLl" + "0.8872601871594847" "ele:255:icXC" "0.37517625327876525" "ele:256:nwZmgjIJHB" + "0.4472302965803041" "ele:257:CEZcDflAQTNZdzObNbrwLtEqjNgkWbcLcXuZQXJAEqyoGymOYqppuJJjyOPEoPFQ" + "0.780663262913547" "ele:258:NbjitZzbvvAnffFGnTBhYqkZRbQlPVvc" "0.6114790546701429" + "ele:259:EZYOaVLeDkKLGytYZrxLGRzr" "0.18378642318141092" "ele:260:pWYbNbgRlWPddxsjKHmOW" + "0.9576760507667561" "ele:261:sZzqVDT" "0.46086383365401096" "ele:262:mGJfvnLGBwbINxDCEXIRtHdmXyqPlOQhvyvmQTGaHAwZfqLsLjJppkdDdMwwsBv" + "0.5751175337887499" "ele:263:NmAoaFQUsjupBVUJSiQbUzexEMKCLVHVrRpJrPzlndc" "0.7387122963781291" + "ele:264:YWtBJMQbuojBcfwCHTfh" "0.7526407515005629" "ele:265:ILLeKkqt" "0.8982229649976201" + "ele:266:udmQBnKTaKXjlaHyfAvffWdNXIKAMPMbIfVNZMCbMUwvlhNCVRJpMsoU" "0.13915355988685996" + "ele:267:TG" "0.11838397899318787" "ele:268:LjoaredUaqedrhRQLJViXILOffWJlDgNaCGhROnZIig" + "0.2720595275779307" "ele:269:OLvPf" "0.05213699817329576" "ele:270:TGXeaegcvaWaexsIWJODTEudunbCJWjOnfmKszg" + "0.9760555384384879" "ele:271:fCQccupsw" "0.1826479936554769" "ele:272:bTCJyfrkZoFKqxNdCsTLxNAfmXPRCSEdNDrMRlvKCRFrjjPuJxlNFkKnaNQ" + "0.1816006773234322" "ele:273:SSicxIfZQttLnNPbzDMvxzfSFhnPHAkfFPeclMecFQvnjLmCQpEwjJiq" + "0.644883358870358" "ele:274:rpLDqOGlO" "0.5993794681833459" "ele:275:EbFjBeehfQxqNpOQMUUtGvrJKkZVWxWFJxFCKV" + "0.6528913316681816" "ele:276:ewiSyYmEjbtTf" "0.5686335211517553" "ele:277:jeVTPCizAMtXIkuTchJUxkYLeTYQwOneymekogMzIvRxzTDzIMLSvujA" + "0.6181915174781923" "ele:278:LFxy" "0.14900559309428074" "ele:279:hfghiprQqSviaaVAiIFKekzwQjWhlkZZlVprXxbaqgHYmnFzEOuTtFwBStUfB" + "0.8338524744347505" "ele:280:hqwGMGZVWelRXBEphXvTmwXMeVvJc" "0.771379497890405" + "ele:281:HVrnrXGygZsIYancOKsmUaLEkPoUpxQRPG" "0.5994072231684636" "ele:282:lIqDYWuyipeWAOAdBQDuTvsKys" + "0.534524220798845" "ele:283:kKTDdgRCCxfiPBundKdDyieG" "0.7242139542264654" "ele:284:ni" + "0.748944785839734" "ele:285:PdcemqxiBQyHNkhLpTObryItAXvDpRjjmVHDikyedhTeYAhNwQKMHeVcfApk" + "0.13370039714229587" "ele:286:FYwSoEUHBhDBsrJMdzpluc" "0.16028766133142947" "ele:287:aDKzQKcuBfiyyuqHEFHLRRCLRamOUARk" + "0.026062274014891695" "ele:288:huXBuVvepspZbb" "0.22018183573052252" "ele:289:AnWyUVUBaTyVmRaUcLZWmStRhKeHAgVckxyFojKTBF" + "0.07982614064135407" "ele:290:tgggRahsumg" "0.3697557070272254" "ele:291:rksriVmscvrYXzIYayeHJdvPTaGQCdqXnev" + "0.09422878535627355" "ele:292:EABGSXaJ" "0.8325274594683421" "ele:293:CgCfRcqeCzNAHINpiUDuMeBeRLRdcd" + "0.9693896699692307" "ele:294:sSatYuMLPzLp" "0.5311474696918715" "ele:295:YAaIFIfsiogCsuvVUgrst" + "0.39224110837672066" "ele:296:mEHNOjSErtEsZOtlBJPzCRcXmftzwRPNTBVKYtqVoGZssx" + "0.8176954488229201" "ele:297:XUBXZiCSdAUJpFEGVzozodrzsDkFYgezysediNYbMkBGfEsqCqY" + "0.6137094587670581" "ele:298:zRtQCUMmJkbIxcWFeJhlrnwvhDOcsCTuQmIUIhiDugArfHxbMMwyyUJtxqhirG" + "0.7719959033122741" "ele:299:ebFOLQRWlTZoaDHGTjjtKivqSh" "0.37933435410799776" + "ele:300:gZjmUQgmBiqNfiPsOCrjlfeTlEEbOfBVrAwqvO"' + - '"ZADD" "zset:skiplist:2:300" "0.09262750297586564" "ele:1:or" "0.9383651132213807" + "ele:2:awUEuWVMajnpzOiOTArpuiSQekbfhVWn" "0.5214936071707239" "ele:3:dLvVjtXgfYwUEOxXFQmag" + "0.9079214934215405" "ele:4:wMOfziikZlxOokdQjWovNdHdjFFsDAdJaTsZoQmsnEZarl" "0.9067368627115772" + "ele:5:HsmxitflvwMNNhEtFbLO" "0.5918503322692709" "ele:6:ksWvrVzSlLItxbntLMhsJiwEZtZoTefTLdTPucwVBLNEHDkVSBNaNCawnVHq" + "0.3360474296101915" "ele:7:VmqzHXRmiQzEsGlfdl" "0.7021374853906152" "ele:8:bNt" + "0.40311940256418133" "ele:9:HXRaRKNjkdKs" "0.14791692909385812" "ele:10:PWxaeVvawgdqBTonQoBXTylfhnrLAHXJiHtNQdqQOdTr" + "0.5499073150836501" "ele:11:WwqfjEXLLihgdcDuddksFuHVAwFvZgfuVfOeNPHFADpJMNySPsVyNt" + "0.6739165529304422" "ele:12:SCtBitWxpz" "0.20235214431676818" "ele:13:cPlWndhlUf" + "0.981893336127039" "ele:14:doYXBBDseRsuLWCTFIHAuPUxEducFdUYRQDZfNEvVfuDZXKBdOZnpaOiYW" + "0.6255137319908027" "ele:15:vHMz" "0.35225381591612226" "ele:16:FFmOJmOgTObVwKIoXdbQFAkIAThqcmuxgAAOzEFlG" + "0.6556189581423885" "ele:17:QMjmHFEILYQBtcbQxsazwEkHG" "0.1086786080705826" "ele:18:aQJgvxcBkRtfGQAMgWYhsnhRuHvWeXOzx" + "0.4443262581173478" "ele:19:yzixcbOpFNbGrZTlyAlOFrSPvpkkWqrGodYsZWeipzXpHeZ" + "0.03407764418162318" "ele:20:vStWKgLIlsakjbFJd" "0.6036090393945417" "ele:21:jEekc" + "0.25987832126438726" "ele:22:KpsJAyUDNdNQzsfSkMDfHZ" "0.22654291425478534" "ele:23:tqI" + "0.24666995271407322" "ele:24:LGIGPhYgkxfwbKmXWqvPLbYeHhkFUCLFsnOdnLHYtGyjzZkiIdY" + "0.4267692300380157" "ele:25:eXcwFSZJCrCCFJynzpgdQDyMWoXDYwCcfTmNbWkcfbk" "0.6293648111766171" + "ele:26:EAMIUZvUsAkDhOgAZOylhhQZNyhPurbXSCdaoTCEiZbKxTzXmEZuoQXLz" "0.9918223572334939" + "ele:27:IJviLAjBfTjpnygkNme" "0.5400327173421172" "ele:28:WjVMTKGMQhBtwExljSYstaaoWHCwKTBAjwzUbbOAx" + "0.4391638034400295" "ele:29:GaTkBmQtkABFNYXgRXBFQYrngrXCuUjLGzLdoOMSANzbAXGN" + "0.5248632352049256" "ele:30:wruIHqSfNHqhQdoWyUrkwToqZjh" "0.4245142889842648" + "ele:31:QNrjPwqaFhwvzIvRnDrShNDqVvGHHIDnQddMSDyEdxDMIjZvuQSTtcTERRpqDf" "0.6630427890269389" + "ele:32:XsvmtdTG" "0.7021725631889002" "ele:33:zXNKoihjyQxKbVTFCsoexA" "0.5991014496086998" + "ele:34:xMAdMecdzpMwLOKLsmVM" "0.4167006541149544" "ele:35:XNPlwYjUbEO" "0.21748473627901788" + "ele:36:AfNMHPOCbeAksrJDhTMgToaloyhwouVaw" "0.40372213029096016" "ele:37:ELpdvJAfmUdBcPCnZSCXObXTOWLgiEXnEMlOTGXXPCnswBjbHdxjeBHg" + "0.6140401066542219" "ele:38:OHhcyIKEemBnEXrQVcRdZhcKkoGOdHWXNCMzSKusoLHENoHXujdS" + "0.7550574793380168" "ele:39:MSYpiWjfKhvpfkBSPVCYgjDKdrN" "0.8269371540962509" + "ele:40:cfZEjxhlfRgVZfefeVAPlBHpeJxQQwykwaZjj" "0.7674080844005543" "ele:41:CCLbStaDdBZaTUnJPidjwSbEZeeoNigsjnUQDZnjVnWa" + "0.036595137191906546" "ele:42:xiULvOJbNphDvlpwSzdoexRlCXtEnlvAUrkppFBlddyJXwaElEcJMPRoqObnm" + "0.5698074730307818" "ele:43:SEvLWl" "0.3369129481509787" "ele:44:VcOjsKDJyinLQIRrVnKCWPjgjbDuNzjiyweNxESMKbrQbugYHsIiPoknumhPR" + "0.6422106412803937" "ele:45:IAmzgSECLDxqgd" "0.6894083278054212" "ele:46:PcglhQAZxSfSMxJUMwnDvEzlyrZpPxsNyGBujHQvzddmusSaTHtpAkpdzMsNtg" + "0.6450057709395803" "ele:47:TJPQSHCulWh" "0.3070909482618994" "ele:48:blWTtuxKnoRamyEtyRbQjJbYYCRaseaIXXtvBihOIadnSKMyKaFGwWBy" + "0.8598262989702926" "ele:49:IVJoggskzWEkHKovKwoOHOmaKbgIUYdINWmChdmr" "0.10354415035880926" + "ele:50:kgcLRlwdZFgFhhIENJIspcjGvllDOVLsvZtUrVTMyWDfRpfVz" "0.28928908386800456" + "ele:51:AvQiIRwghGePoNguwjfUmvnNpOrsmeHKvjoIcBlQNnNRRlIrXD" "0.5442717124338943" + "ele:52:RCTfhiXHCPBwOxtWxdSywwfLquWKLAgMvnZGJSUvPqYndYK" "0.7687123004251277" + "ele:53:ZuqUsKCutHPBSYKZBuZJQZhRVyTcYMnUzXFFimIJyzfiJNWn" "0.5345711507419348" + "ele:54:sXejHVSkPzasBIBzbBwJNOrmKibrflyQWueOY" "0.9658634461828092" "ele:55:YQPZRMGbtDEpPBEofYZMKKrVHKJkpnXEsmqh" + "0.23019227710204926" "ele:56:CufakjBGhcZTOWLtUgznxEDhuvNhFqpBzIrGJtdDouAjRFhLWvQSlFu" + "0.6068781157494676" "ele:57:onqdsVasiTWusQQCdCswLqp" "0.8301688570711953" "ele:58:GCsxXdadpevs" + "0.5694294722761978" "ele:59:poyUfSRMFmwfErZPJUHlgHlubdBXtQhSJGEpiQRHXfNPHFoVFoWJmrGzNhOP" + "0.4493023274389891" "ele:60:k" "0.37642031836089995" "ele:61:YQPaAXgTZiFgtsookRhfWWLMVumXoBodaVNJcHPwb" + "0.2228297094226499" "ele:62:ejYqfmTTyrYYvLxPDAse" "0.14198066739390958" "ele:63:fsXUMHeAEejToaWjEhTcrmWMbFFdTRSXUOtGWpEbomwlbiOCxjBkDuargUNurtSL" + "0.5233946066825867" "ele:64:TezvDO" "0.4878495944197222" "ele:65:HzsWRNuQBNjMJMoxIfjjlfczTcgfWDJfWlKysFAM" + "0.017359009875882236" "ele:66:qvHuOqbAosEcdJqW" "0.4003374590717428" "ele:67:MouLyXUsVzEjmjlLCKqEyGBfCsnenlcvPoFWsERYzTvMNfkLKSgKW" + "0.23253292632629075" "ele:68:VjFxenLXwgrkQEAbqklWpggsOMMYeLzxTECqbwwGVwhUGZimqAVURMsxzxm" + "0.646901662020837" "ele:69:xColhsZjMEXgAKAKOWKtkoJTUGxRp" "0.8839172533047469" + "ele:70:lfmulumeTiacynAyztlI" "0.31940112981806046" "ele:71:OfhTwuZNKxrQLEPWPWLaqNseTfoVbEgBZWqSRCf" + "0.9457823004980779" "ele:72:yXkYmdBegJjXwgFpWcZnQnEnonqrUKwLxrpydrxuALbVqLbdQEMeuhQNvYJYCmNL" + "0.42349649546528356" "ele:73:nqITDNFxSZCgTrGAlsGR" "0.1491128401167493" "ele:74:wSlpcsEWUAxEfdWdGarbiyZBnHqqXMLbabkR" + "0.7164223539226408" "ele:75:aIhaMQxatzemPJXL" "0.45353981831873524" "ele:76:PKyZiUhHjWxRavredJTVpxPfWiSIyw" + "0.5055761893027574" "ele:77:fCwJdIVTYUcRpxyVtvgrpOShBVKvuDfnezaEicBSaEkufAYjkbPQZLdmpqA" + "0.579969466017893" "ele:78:ttgVNrKMzdhyWKM" "0.37257323396198194" "ele:79:tqhZoSrQzrhOrsVgBimIhUxxIpHCpVgAxXeUEQuQAmwwT" + "0.12062537296309861" "ele:80:riTBhsaejufrrtAtSqOowA" "0.42813583015090506" "ele:81:ahRppAcoxMSVLt" + "0.6486347611701347" "ele:82:cA" "0.034587858704615115" "ele:83:qqrNxMSTddFARf" + "0.7593627828586745" "ele:84:FplVKLwuuOafeOeFSItktKgiy" "0.4994696285128135" "ele:85:tIYVAAegmAqMASVk" + "0.11891388133869885" "ele:86:YEmCqaoJjXbJltAOoiFnVQNDuVacCaLlOFaeetedotVui" "0.3894622762499911" + "ele:87:JdrKgsAPlek" "0.5336569471727015" "ele:88:hcCtXGaLVHWCgMUlYzUKhduXYLemTyQhEYVFg" + "0.920251905287605" "ele:89:jnvoEEFVGKKoOjzUtvfoXhNeTetuiJtaDGEnITEBIFuhPaX" "0.968897738066963" + "ele:90:qlwTOlqYcziWhbvBMBTVIgCVFnqpVaPNCTpmSPt" "0.9465629005814513" "ele:91:GOVRIARgGyaAIHPwkeEZzMAnqSyTxFfoqWgM" + "0.6059363868454227" "ele:92:SfHzXZvuqNU" "0.7358711669072902" "ele:93:gHeGpNWExpYDynWGcoehLcJEHRAhDZfpHzZAABtY" + "0.002391740771283568" "ele:94:uwSSATCqTETlbTuEsmJXbgXAEUltRFNuLGTpMbcNQCwWYt" + "0.7158149076298387" "ele:95:HwAliXptdbfTvaAVTOOULUEJyTutsHqnXCWaRTTefOWSWHphznqRhpbJZWs" + "0.6038934139572911" "ele:96:VFWrpCzknVyyvPRlvcMNurUszGhKYAJFotTWlsGXFBepexNzhWU" + "0.6222780454322215" "ele:97:ehNF" "0.9901469156377757" "ele:98:KnywilEdvSsJWLFHbSZCdGdzwCwqRzZgADKsixcQ" + "0.3538196101694284" "ele:99:oBPoRiKlTEbPlNjGYQDBLvUkfozTGdFuP" "0.979768652983662" + "ele:100:sFiKSSRMgkIQRuwTcWHjKShPvZdfYHKha" "0.0038377506742498513" "ele:101:Res" + "0.2662937612113552" "ele:102:TyAW" "0.2792638772861509" "ele:103:HwgGPitqrKxuhVWgFcnBJPIODYPXtajLeLQxumaekHVdlYfqbmkFnkgiwGAa" + "0.1781892660507567" "ele:104:LPuxUVFjLm" "0.04705661819915241" "ele:105:TSouAycARbZOqJrgTwNyjjXrbeXKdVtUMFNswZU" + "0.7902202191071308" "ele:106:HPWXuahhazgiqzysESJYkoArGYVcQXJgzOCEUPdOWFFIVJXunbCGGtqqntblixFU" + "0.4481460935563768" "ele:107:BJDIpNXqOQWSamkceKuigPXGOLEKPOBSpUHxeoEsqzSvIidEdvcqgYiSVG" + "0.3432861842856956" "ele:108:taUgdwQZKdCCodjpsjrhHpANRzpisggAPIUbbNYHEtuvE" "0.42832042624818045" + "ele:109:AAOSEmNLVtKbrdVrroPeNRxnxbpnJoTlq" "0.30812383447047176" "ele:110:mXRaSwDGEuPrfoIULekfXFDKYsIzmilkIGYTCeJKwbZhQJrfgQtxFhBARoWJZ" + "0.7522373944538988" "ele:111:GgBlqTMGaGyqOFRisSUHUTfCiuUL" "0.21562431158684814" + "ele:112:CvwkTqOoXtDtu" "0.8428189114630859" "ele:113:EcWUGnCkfXINMaIgGKkgScPZGIvWuPStFXSAMeOxjXeRptoefDUeIuyJPzRBzRHi" + "0.6823372379983094" "ele:114:xzIoKVgZNBRQDQfiUF" "0.13935362874792767" "ele:115:KrpPjoVMOyBmuQqpqT" + "0.4332332406044198" "ele:116:UOWNObnoXoaJKzh" "0.08138617832932371" "ele:117:rVhWPfDBDxvwJE" + "0.30356446861651587" "ele:118:ZSLbxvYgeGGGiLDww" "0.32067439081280513" "ele:119:bQcKjlcGGQNPqeXDxJDnthZflDwBZEnSosGoXcpgkUACLAMGxw" + "0.40934598601386774" "ele:120:cLkEBEgUnFyVcuJGoGcPNYJwilsQjBAw" "0.6433179848407005" + "ele:121:nnnQlvic" "0.33121455232187447" "ele:122:NzwulvsTLXrMthvgborfBhEsWPizqgwnTzw" + "0.8803242323217817" "ele:123:k" "0.5024021684133856" "ele:124:QxzGwrBCzyjrxScubOiOrGJcTzePOFsPhEHFEzOxkkZCwuUirhETCcjIdoWyA" + "0.025065994225742627" "ele:125:jqExxEpycRHNbe" "0.043490094554752834" "ele:126:nareUMxBfzRlJVTvbylndDpEgHoZsZbNDBVInjychmAraHPfaekwZzAwglFw" + "0.9816097986428053" "ele:127:IQzEwdcKwNBYqI" "0.6572929124981133" "ele:128:stSHqZwAsTzOsZddsAFwHbfEEsfdII" + "0.9613433392746732" "ele:129:dEUztMXSn" "0.6147262075260899" "ele:130:gFwBVpGOtjMuDGVuYRfsFqxLozUbKfIbSnouPpkXziBPLipkyBEToMPgNO" + "0.4051062573367158" "ele:131:iYlahFoWqUpvpi" "0.34363782060223536" "ele:132:QzxFJqb" + "0.8359405554401546" "ele:133:SwhGBfDsmAFlWxKEuCfBNxdff" "0.22939148700606238" + "ele:134:cllbmiogUFJoscJuKiaWvMONpxrWLfuRGMCpvGNFpyMxPJSLvZP" "0.8744608124944555" + "ele:135:sYvQFgPAzBKmDspUtlvJdlQVklBHKOFUIHrRoSXgBAVQ" "0.5959086484602159" "ele:136:LPnvKvJYBFLAeCCOQECNeyQsTrPMxvVpqKLjGxKgUBEAhE" + "0.9540265436675929" "ele:137:gRldWgnHoDZdu" "0.7669071517114534" "ele:138:DXyqifsGEzBQZNReTCmUGmtUGRjSnYMRjxFpClo" + "0.4318348989018863" "ele:139:KtyUQh" "0.39059761540419147" "ele:140:hauqIjYbSoFtMcOOKixBAeGacoockSdTvWdHcqTKUXobKk" + "0.24983864913879872" "ele:141:uqZhAekgMEGuxtmrZqmRmJVWoUhhPlyhlghNGmWMFRuxFmFptejHsXs" + "0.3210435235914324" "ele:142:CTIJViEGArQbStmcRofVExLPAzMWhDyWQJXDque" "0.18980206607687544" + "ele:143:MEcsFtRZtouIWHjYfCXwstdYUpDRmiTQjUkmQDnWi" "0.15361329127026002" "ele:144:dLhflQgp" + "0.7110669295479786" "ele:145:meAopAZzKlFlTBIeOETzpEGUjWasknpzyPDfbfugugPOMy" + "0.471301584307086" "ele:146:c" "0.453076241949232" "ele:147:hQjzXuyJgtetPOWOxMhUvNJXQbxshZmnSasQsaCEbZglftDYEaNwwoUm" + "0.32693695754886076" "ele:148:XbqSlCTEBnEqBzLKGsQ" "0.35856995662107494" "ele:149:EhjPJWQnDvkGAejPAthUUuD" + "0.31262357180080613" "ele:150:mHxeZoWhEz" "0.005845222671651107" "ele:151:IyvMEPnFfHSenczOjGODbXJwtMXkuaZFVLntXwtL" + "0.9235968098260897" "ele:152:lrpVmOGFgBpPRFjMGZIkJJYPKUKZqRFrUpLqyKTEJBEoleEgCSJZaRxHWXZe" + "0.13738091090283422" "ele:153:ntihnyZWbefEPtNiSeQqlVEbqaMSSoCvwZuySkgaTpEVBuaYibjXKCpPPdogPY" + "0.8819919106825659" "ele:154:ihNNulMflfjrXcnmwbdTKmwRznOAipcJoPIelWDxaJYtmcixuGWxBsksfIxUWHAg" + "0.8932991308660218" "ele:155:segCTllUZbjnrkOODLouJuJXiuAzOvoDcPCggmyMTVzzgudrvwVDX" + "0.476578059810815" "ele:156:hDedhNThJbQzAhswOyXSdRPMolSQswuUCeTDlWaAjMtZcBOdoyeBUBxwHAWdlKU" + "0.15072385720743042" "ele:157:rDjSR" "0.2161277707711633" "ele:158:ZvNhxpHnEUXOdTdxfRDh" + "0.9488145816867642" "ele:159:Q" "0.6787840316052304" "ele:160:sQGndmhzUNtmrDtBzsErELxzfgipMunWyBNABPLhAtCAqbVOXtpPlCeDd" + "0.7009800982563948" "ele:161:UwGgQFuNoYhVasdZvJjKEOMcVZJWd" "0.3795646206727531" + "ele:162:GdsUALhOYcMICnYiDiYkZVvwhH" "0.017890110952071048" "ele:163:zBqByAKlPKPPOC" + "0.5533082346819248" "ele:164:bAdZPWtNjtYoGHdqR" "0.23109286509501725" "ele:165:iUJtSYmwqDRGlMsJREewzEHlvuWaMZPJTCvvgFryO" + "0.4713040256603368" "ele:166:wjxQPETQlCQXrRLRTDQGmdTzLlKoUeyMFIRsaNQFhyaJbyXJmlCOSCsHvp" + "0.049974994424209385" "ele:167:DGPbIzVMMLUWWjVsevouwaypQhbJyMxjwXsjOkIxTtrtKimvOVC" + "0.25554197482909946" "ele:168:yFeyxFl" "0.06546972032558007" "ele:169:OJFPPOAfhqYDChfIsKgmwiaTfDXTUbtEWR" + "0.16747563632090212" "ele:170:VfVZvYtxJxcvgOFxPjc" "0.8154729106809464" "ele:171:DmJQkcRAyjgHBMCAFkTucwWQvAICMvtSPXxCZYjBTsgaYxjBEcZeEViUboQA" + "0.7721499842095603" "ele:172:KeAwetETxSKBInxxSgcjApglCEEjeapcyAxjKWxWmVUxgedBRvOAuRkXjUZdKqw" + "0.5689791211786035" "ele:173:lvGjXnJSwVVaxoNr" "0.8855889473005578" "ele:174:CNroyxiGNciqCZmloBvziBxnjfGcrzWdskAMghlNPyIJ" + "0.41912320182786467" "ele:175:ejxnnFYYFrbQVVVTxeLjYeVXWrDZopvmgeBDSHQOPevqXslinL" + "0.8035165431612967" "ele:176:VdJifmoOOSJzPOfmpOvrCLFkmtNEmEZqF" "0.6869604080666722" + "ele:177:btsGNcuRBzmY" "0.3848414466927291" "ele:178:hnmrVTAOGxtrolmLuvMcDzgBDYEnsOOZvUnOtkxLYPFv" + "0.28812018831830133" "ele:179:PXvDrJNIcQFbzQuiYokqPt" "0.11921245346059317" "ele:180:aCufiJDTEkX" + "0.024182370939839104" "ele:181:HgnVa" "0.04754239386647818" "ele:182:wosItJxaLEdvLzTjjydyvGqJLUSqT" + "0.07505696070559253" "ele:183:rpCPWChrqFvgVEVVKRoWVwOJhVQPTAcEYFz" "0.7810121297050087" + "ele:184:VpxhuPTEzZtxYRTVjwNczKXaBkoxhJgbKlLoyVawHuGXunvkJk" "0.7319508963422978" + "ele:185:MOwjbZkEMvyOrYFexoyxKFsbexmXqqozGMidaWfES" "0.8182970116273036" "ele:186:RmWeqjsbMYAKOXIpflkbOOiMxRYNrREUFWnBsPywsUTjpRszeVD" + "0.13763305291470818" "ele:187:jOsLqpJ" "0.7680871215735682" "ele:188:eFmdPITqTFFhxQFDMxrArrRQNz" + "0.9520468889430076" "ele:189:ivzhdLabpxFhrXVumNABm" "0.3334255618135925" "ele:190:jHaWvedsjhAxDTNlXtGMqEggBjmkTARXefpU" + "0.02094320460632315" "ele:191:jkMJkvC" "0.782568781581072" "ele:192:CBTuXWkjDEGmCnMoTpvLYZMWbgTHYPzZjmtmXFLRiqeOmTOjZHNjoQo" + "0.4130369581381168" "ele:193:IejPDoXOfwXhIBVbWApoqnjm" "0.05032810808761934" + "ele:194:GpXjiMttIGORqGmnmKEbUhbvJDtcSEgpwgBqAshNgwuXcoXVzWmN" "0.03562147096755652" + "ele:195:TdlepDegXuyVNCYDWpcgWmmTCWTdpdEkxDyduMSOuPdmEdUyMaPepfMgMJQYqfxJ" "0.16058179698958497" + "ele:196:dvezkSgvqUSe" "0.19543066541353393" "ele:197:PdrxoChVVQKLNBzhjwNDCbfpZ" + "0.543247204423523" "ele:198:cjeiZuqQvFu" "0.33635134143621626" "ele:199:lhZJcssulOevtNgyWxxoNpLvfezhbqgWFJTIDmyxIBzC" + "0.5115911058102967" "ele:200:ulngahGBnWlOYgQMBGpxDaupccQfMtbOEPON" "0.3379695196719398" + "ele:201:bGtRDNQXwIrwETejqWbnluhGIkIPZpdYmmPTXeowpyneLwHa" "0.2728034878865264" + "ele:202:SyQzBNVlAeZKPeRPriqO" "0.5368846611030937" "ele:203:IygYZUGEDlgWTfOebFnhJxOaUAKdRMrimlQOHsvYWd" + "0.4539679929781939" "ele:204:HEhoVrszrpmkBDlXjPNFaOrfr" "0.3006834739749523" + "ele:205:aROjCcIvSVppcmZvuNFDktThdjDGdHWoAowxMhnBSzmlhwEXzXnGFxINjSfybr" "0.0448639195084084" + "ele:206:Tl" "0.5049616444247743" "ele:207:kuhdxIfvoPQppaUlJhUBCtlJzgsxFqelgwmsCbbLv" + "0.28294877456995937" "ele:208:zDvaPScfjOwDEfAPsjYAdI" "0.6174513829147165" "ele:209:vqsNtI" + "0.18252715540611175" "ele:210:QETJHAoEwrcgWgqMvtpSkxOJIPWKGfDksckQjLy" "0.11630546595702906" + "ele:211:SfWoguwffTGTlWKSwrDbLKF" "0.3606182682742908" "ele:212:MbKFUFyFmLLTCfEFgdC" + "0.4926337206305448" "ele:213:mdDZaxfdkurWkYykEOMYkPx" "0.6000623954063804" "ele:214:ynHVzFwNLgrrVXYDuGtrufyCVaOzzRfraXTXmxegsCcPeFTSaIVQZqwXCb" + "0.2775621516125364" "ele:215:GkhknjnPJlvxwURrjpueAxLAEvSY" "0.7922460208724172" + "ele:216:nnDjHaHZMisFPagOGsyRuWIGmkNlxkmrgkotedJGWAZPMwqAVfhHyR" "0.5889353014735185" + "ele:217:LjXgi" "0.5497216884074748" "ele:218:jdIUkcxVllwKxk" "0.15158869373843586" + "ele:219:lfaHJBQSZxAXoQvQFlPigiVHkZgTuMVws" "0.1471601248923734" "ele:220:ErtZpvDixJoWzYaZeDGLNlyvHj" + "0.34543282445022816" "ele:221:T" "0.19990737182076168" "ele:222:YxJjmoYLFozIIwrMYOlTxxQMVnnoRNfMJZNsoFkRgtRJxjWLqanXK" + "0.9235704327462902" "ele:223:jknpDgOcYsFJkAdHes" "0.028979981957491407" "ele:224:PecWcubMjFo" + "0.4819827930201377" "ele:225:BzYNIyOhFAXYdTkiFMVahLnUBpDiNVtfzHr" "0.7450560599120607" + "ele:226:npTXtRZLkvUdRxzjAJhBMxrmMBvhbEgxkhpoLDwRADuYpsRddDmNuMaPjfPbsnxd" "0.2026432885675793" + "ele:227:XQzBnvrfYQFiADkbGOfRNEqMnfSsuknCCmcYObVsVYqHX" "0.33615596635066225" + "ele:228:gi" "0.2998550975047304" "ele:229:TZRTennwunsTOdkYpeygbUpdbMWAfSXuHW" + "0.6648237145509738" "ele:230:WVURIAfgDtEhYPyFqlwEGmSryqDTKOcmZFCN" "0.9372645320573785" + "ele:231:udBlpLQIU" "0.3002401369498503" "ele:232:QZtIphwpqQZgcMUmeqQkrZTzatshryjTJIPQYFWkGRwjlqwjigMtlKMMemuKTbMg" + "0.25105472672858375" "ele:233:xUkFKUrwJNybmdNQRGVehzHfOuGElLrJuuAYxGqbIoHoHmVWfsPglk" + "0.9789489212458264" "ele:234:qsatMznJjZjwVeWoDwAsB" "0.7078139907480708" "ele:235:GaaGmlTHoEgtKbHiKGIFM" + "0.1046069368957796" "ele:236:KEflKyuBnrCIoilhIaARgQ" "0.6933650368323319" "ele:237:enRNBKg" + "0.8675947064153726" "ele:238:MKHpkdutXQrLuD" "0.9649700026640867" "ele:239:TsTIfIuABLEeAQIwTfJaeHpVxkWiapFXnQTQMJnvLLZyXlRwItuSNswMW" + "0.5263629254265921" "ele:240:ocCdGAupDHWtVayoOIdguBoxLIyDRqsvckyTWcXqmVfOROMPKrRp" + "0.7524063653536449" "ele:241:hW" "0.19599955008534597" "ele:242:akVJEnuYoJgcIWAnSADGMZuwUfVbIq" + "0.15609750914096354" "ele:243:hEUhanHWOxoScINZOwKZrbYdUOBKHtoOFcZsAIzoMEvCsPJegRaQlXobtXnaautk" + "0.7890752169170604" "ele:244:Rl" "0.7120506976992904" "ele:245:hoceJlyQdVWNISvutYhokdHFydfUWljaVjTfrNuUDZnBJdm" + "0.7417159545801839" "ele:246:zgQTYWnUeOwnYPvtYaN" "0.6658632542669134" "ele:247:UVi" + "0.8541463086909872" "ele:248:ohJEVIwKMTixERomyzuLCjFinZgZmqkMZFRLqijAEiHjHUcQgZ" + "0.9446951127019414" "ele:249:CcIcveuZxIuoeAyJMaYiwDMLGzdqYOuPExXhZsuVfcWUzr" + "0.15818622003981309" "ele:250:JwxuBJCEMZbMJAbsIAwPwUMWkNOmRMvVwlVnMBWbRkSUaTNGtDCiBfXdqWI" + "0.549760006394579" "ele:251:JAhok" "0.04924382329883947" "ele:252:JIgeRfRMaTziVyjIdodjtorGgHTeoiYHoSewGEvcvjsTKiFLP" + "0.3823858466872766" "ele:253:bjZbtanq" "0.40286373652099416" "ele:254:WlWolwQXSRSZATDgsfdGLuRrOFPaG" + "0.3864202824447852" "ele:255:iQNzZfsdAUMpqXRpOyuqJJQfPzhJLcfnstKeqpNyEkUBUsx" + "0.30087671810763006" "ele:256:uulbqpiGBlgInmlFKRxUAOlXCLZcRCGyQyEHaXFOEvQai" + "0.7410145944905596" "ele:257:GyPpWZoEMASkcgOY" "0.7996004149665447" "ele:258:zZNxkTNMqRlGsYahKYsgsPDCDcIsgVDNUrQijkcJxgGHrI" + "0.5402362797766433" "ele:259:iqxwwQCxMUAMJEHVpXEwwN" "0.6362128978606277" "ele:260:MUAqsNaJGfPRaOwkBFQVwLBufjgdIyhusYTPwrmWiyRseJCPODBlzb" + "0.4996926196597391" "ele:261:oFUZGTyOAQdfnVCGeoCQqJUibzagyMTmdeKMFjsObfORKkudkIzevOqz" + "0.42924714893927196" "ele:262:dNzGqFyCVjeHaWeWqoYQfxBbzdUIJCibOSeoXoyceRCPNNJnoyMQeFnQWlk" + "0.5322722081965099" "ele:263:cPLVSPyNeYmivofbOXAZERBvCvJBXvthUlMVOAuPzgjuQNmKDBLSBDqsDesYsv" + "0.8777291326872585" "ele:264:KJllfZUWKBMJrwxXBjktUrOHwrtTWOuAVpkssvPjgowDHUNheWZHOQJEYuFszrbl" + "0.7072711055085867" "ele:265:EkzJFgpBpqiwSpoXFwcjZljQJDkJeQkbdfcdtGYEhGShlPFXwKnBx" + "0.20436439828556952" "ele:266:FqpERXPFhMjCNGCeeyGMpFTCicoKSruuqBdZeeGJKPtKktFoamFo" + "0.3472173471264659" "ele:267:YhmHpuDCLfD" "0.18021513778229503" "ele:268:uOiGyqEpsyATQiRwtVvJFRrzSzClsNyDHiaywBXAihdvBdpnWtoffjdOoKyh" + "0.5522539745259306" "ele:269:iBiK" "0.8385123045630564" "ele:270:zUvpgWWoOAzbaSrFBvznXoKtHkcAmPwOqivMlixNxq" + "0.33714769519639143" "ele:271:MsWzfaaReeRzwqWjGACzUicwZtlEFPrltDAXO" "0.4969992294244491" + "ele:272:aANoKjfryoOpWqAhpytocmUHCsWxIAYrSwtiiTxw" "0.44636036938360946" "ele:273:clnfwugmPurOKJqMjxn" + "0.27285660039441184" "ele:274:atrzvlsfzPNUvAgptZbMSHbGHhvLQyYUH" "0.500326800049104" + "ele:275:RuYDbMeeKwElAXxvXLjExHtcF" "0.5466675758624856" "ele:276:dCEGKvzaWNWcvHVeMAgoocWMwdJyootwqFPMHGKKUMPxCH" + "0.2018109903813089" "ele:277:eDuQGFBnossxyIbspBTooBfr" "0.014311547995801921" + "ele:278:AYJqzOLPgChWlpdtcaZwHIxLRoMiXelshNtOnDMIvtPJioFxddicddrxj" "0.6159669102868971" + "ele:279:ujQJI" "0.9039994047199217" "ele:280:fHiRITtiScqaUlJZhyifQIAaAVHfXWmgHMlyQwOlrNxvpXpRoClYWqndtH" + "0.41822330412883957" "ele:281:VRbEUYMjyzfbkRvKYGAxlOjvfrVDWdsfMoNaGNJDUYiNhPnaoYJ" + "0.20182675744516632" "ele:282:QLyityIrTBIXSZOdHMheKUACiJNrVJelyo" "0.9536655109799361" + "ele:283:UlVmxieouLFT" "0.8985298311311088" "ele:284:QAYdFWfyObPVqDkJoJWakCV" + "0.8723763850119008" "ele:285:UqMDNekVComtOxijGYdhNkmRimugdNt" "0.5379751008291339" + "ele:286:vzWRFCEvBJrOrxlPIiAxbqDByXGE" "0.37873243809375445" "ele:287:zBrbywqJeVbezx" + "0.4779307824595257" "ele:288:DOMbWHcXdPYBWUjyLnqHBgVindbTWXxTzaRcVawIbUqHYFDecXMLc" + "0.9342932630637866" "ele:289:UiAnOVrnvvtuyTBABOkaRFNIkHfogJCNrNTKXrqcC" "0.034545001035145906" + "ele:290:Fz" "0.40461815986202543" "ele:291:klzKqsrhNAxHPnQUjeQXfSQMIIZwWtAFYYBKuqWhNqUnnZpgRrblAPVtoDB" + "0.7300189023460038" "ele:292:YFXCvQGOMKOewMiEilWwRQp" "0.1378877900987362" "ele:293:HMlNQLAKOslfMwwUOqEwwuowDEKZ" + "0.9649651643860695" "ele:294:DmNeQumEcMMOMhsBZMrKRNhnDwYXKMm" "0.25366932043182866" + "ele:295:LrBATkEONciKHMYPEBRTdGLIqYJolXTgMepcMQlQxbdaXkxMYAIlZhqoayDQn" "0.33409580445339604" + "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" + "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" + "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' + dataset_name: 2keys-zset-300-elements-skiplist-encoded-zunionstore tested-commands: - zunionstore redis-topologies: @@ -22,12 +421,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZUNIONSTORE zset:skiplist:3:600 2 zset:skiplist:1:300 zset:skiplist:2:300" --hide-histogram --test-time 120 + arguments: --command="ZUNIONSTORE zset:skiplist:3:600 2 zset:skiplist:1:300 zset:skiplist:2:300" --hide-histogram + --test-time 120 resources: requests: cpus: '4' memory: 2g - tested-groups: - sorted-set priority: 131 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values-pipeline-10.yml index 28b2f75f..35e9ac4c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values-pipeline-10.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-load-string-with-512B-values-pipeline-10 -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 512 Bytes, with 650 clients running sequential SET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 512 Bytes, with 650 clients running sequential + SET commands. dbconfig: configuration-parameters: save: '""' @@ -23,12 +25,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --pipeline 10 --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 50 -t 13 --hide-histogram' + arguments: '"--data-size" "512" --pipeline 10 --ratio 1:0 --key-pattern P:P --key-minimum=1 + --key-maximum 3000000 --test-time 180 -c 50 -t 13 --hide-histogram' resources: requests: cpus: '13' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml index b3e6c393..ee310fff 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-load-string-with-512B-values.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-load-string-with-512B-values -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 512 Bytes, with 650 clients running sequential SET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 512 Bytes, with 650 clients running sequential + SET commands. dbconfig: configuration-parameters: save: '""' @@ -23,12 +25,12 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 50 -t 13 --hide-histogram' + arguments: '"--data-size" "512" --ratio 1:0 --key-pattern P:P --key-minimum=1 --key-maximum + 3000000 --test-time 180 -c 50 -t 13 --hide-histogram' resources: requests: cpus: '13' memory: 2g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml index bcaff884..40489071 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,30 +11,32 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-get-with-1KiB-values-400_conns tested-commands: - - set +- set redis-topologies: - - oss-standalone - - oss-standalone-02-io-threads - - oss-standalone-04-io-threads - - oss-standalone-08-io-threads - - oss-standalone-16-io-threads +- oss-standalone +- oss-standalone-02-io-threads +- oss-standalone-04-io-threads +- oss-standalone-08-io-threads +- oss-standalone-16-io-threads build-variants: - - gcc:8.5.0-amd64-debian-buster-default - - dockerhub +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --distinct-client-seed --ratio 0:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' + arguments: '"--data-size" "1000" --distinct-client-seed --ratio 0:1 --key-pattern + R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' resources: requests: - cpus: "10" + cpus: '10' memory: 3g - tested-groups: - - string +- string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml index 32420752..ce82d85b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 40 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 40 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,30 +11,32 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-get-with-1KiB-values-40_conns tested-commands: - - set +- set redis-topologies: - - oss-standalone - - oss-standalone-02-io-threads - - oss-standalone-04-io-threads - - oss-standalone-08-io-threads - - oss-standalone-16-io-threads +- oss-standalone +- oss-standalone-02-io-threads +- oss-standalone-04-io-threads +- oss-standalone-08-io-threads +- oss-standalone-16-io-threads build-variants: - - gcc:8.5.0-amd64-debian-buster-default - - dockerhub +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --distinct-client-seed --ratio 0:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 4 -t 10 --hide-histogram' + arguments: '"--data-size" "1000" --distinct-client-seed --ratio 0:1 --key-pattern + R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 4 -t 10 --hide-histogram' resources: requests: - cpus: "10" + cpus: '10' memory: 3g - tested-groups: - - string +- string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml index b28cc1ce..8aaf923e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 200 -t 10 --hide-histogram' + arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 200 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml index 0ce63283..45c82950 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' + arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml index e88fab5d..a329d527 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 40 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 40 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 4 -t 10 --hide-histogram' + arguments: '"--data-size" "1000" --pipeline 10 --distinct-client-seed --ratio 0:1 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 4 -t + 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml index de25fdf2..c14f1eaf 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,30 +11,32 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-400_conns tested-commands: - - set +- set redis-topologies: - - oss-standalone - - oss-standalone-02-io-threads - - oss-standalone-04-io-threads - - oss-standalone-08-io-threads - - oss-standalone-16-io-threads +- oss-standalone +- oss-standalone-02-io-threads +- oss-standalone-04-io-threads +- oss-standalone-08-io-threads +- oss-standalone-16-io-threads build-variants: - - gcc:8.5.0-amd64-debian-buster-default - - dockerhub +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:4 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' + arguments: '"--data-size" "512" --distinct-client-seed --ratio 1:4 --key-pattern + R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' resources: requests: - cpus: "10" + cpus: '10' memory: 3g - tested-groups: - - string +- string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml index 63d574cd..d0c76745 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 200 -t 10 --hide-histogram' + arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 200 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml index 44204ad3..a19e8e57 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' + arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml index b3cd71ec..40dc5072 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml @@ -1,6 +1,8 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' @@ -9,10 +11,12 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns tested-commands: - set redis-topologies: @@ -27,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 520 -t 10 --hide-histogram' + arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:4 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 520 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml index d92bcb68..992921f7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml @@ -1,16 +1,21 @@ version: 0.4 name: memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns -description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs in which the value has a data size of 1000 Bytes, with 400 clients running random GET commands. +description: Runs memtier_benchmark, for a keyspace length of 3M keys loading STRINGs + in which the value has a data size of 1000 Bytes, with 400 clients running random + GET commands. dbconfig: configuration-parameters: save: '""' preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --command "SET __key__ __data__ EX 5" -n allkeys --pipeline 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 1 -c 1 + arguments: --data-size 512 --command "SET __key__ __data__ EX 5" -n allkeys --pipeline + 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram + -t 1 -c 1 resources: requests: memory: 3g + dataset_name: 3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns tested-commands: - setex - get @@ -26,12 +31,13 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:1 --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 -t 10 --hide-histogram' + arguments: '"--data-size" "512" --pipeline 10 --distinct-client-seed --ratio 1:1 + --key-pattern R:R --key-minimum=1 --key-maximum 3000000 --test-time 180 -c 40 + -t 10 --hide-histogram' resources: requests: cpus: '10' memory: 3g - tested-groups: - string priority: 17 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml index 127acd08..fc6d67f4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello-pipeline-10.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-connection-hello-pipeline-10 -description: 'Runs memtier_benchmark, for no keyspace, benchmarking the connection setup scenario using HELLO command.' +description: Runs memtier_benchmark, for no keyspace, benchmarking the connection + setup scenario using HELLO command. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 50 -t 4 --pipeline 10 --command="HELLO 2 SETNAME __key__" --hide-histogram --test-time 120 + arguments: -c 50 -t 4 --pipeline 10 --command="HELLO 2 SETNAME __key__" --hide-histogram + --test-time 120 resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml index 249ad60c..fa47396b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-connection-hello.yml @@ -1,6 +1,7 @@ version: 0.4 name: memtier_benchmark-connection-hello -description: 'Runs memtier_benchmark, for no keyspace, benchmarking the connection setup scenario using HELLO command.' +description: Runs memtier_benchmark, for no keyspace, benchmarking the connection + setup scenario using HELLO command. dbconfig: configuration-parameters: save: '""' @@ -21,10 +22,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: -c 50 -t 4 --command="HELLO 2 SETNAME __key__" --hide-histogram --test-time 120 + arguments: -c 50 -t 4 --command="HELLO 2 SETNAME __key__" --hide-histogram --test-time + 120 resources: requests: cpus: '4' memory: 2g - priority: 1 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml index 9ff4086c..acc7aaf0 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml @@ -7,6 +7,7 @@ dbconfig: resources: requests: memory: 1g + dataset_name: nokeys-connection-ping-pipeline-10 tested-groups: - connection tested-commands: @@ -19,10 +20,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "PING" --command-key-pattern="R" -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "PING" --command-key-pattern="R" + -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml index 478de09f..e11a3160 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers -description: Mixed workload with memtier publishing messages and pubsub-sub-bench subscribing to channels simultaneously. +description: Mixed workload with memtier publishing messages and pubsub-sub-bench + subscribing to channels simultaneously. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 2g + dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers tested-groups: - pubsub tested-commands: @@ -18,18 +20,21 @@ build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfigs: - - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram - resources: - requests: - cpus: '4' - memory: 1g - - run_image: filipe958/pubsub-sub-bench:latest - tool: pubsub-sub-bench - arguments: -clients 100 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 - resources: - requests: - cpus: '4' - memory: 1g +- run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum + 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 1g +- run_image: filipe958/pubsub-sub-bench:latest + tool: pubsub-sub-bench + arguments: -clients 100 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix + "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 + resources: + requests: + cpus: '4' + memory: 1g priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml index f61722c4..d193875f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers -description: Mixed workload with memtier publishing messages and pubsub-sub-bench subscribing to channels simultaneously. +description: Mixed workload with memtier publishing messages and pubsub-sub-bench + subscribing to channels simultaneously. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 2g + dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers tested-groups: - pubsub tested-commands: @@ -18,18 +20,21 @@ build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfigs: - - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram - resources: - requests: - cpus: '4' - memory: 1g - - run_image: filipe958/pubsub-sub-bench:latest - tool: pubsub-sub-bench - arguments: -clients 1000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 - resources: - requests: - cpus: '4' - memory: 1g +- run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum + 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 1g +- run_image: filipe958/pubsub-sub-bench:latest + tool: pubsub-sub-bench + arguments: -clients 1000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix + "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 + resources: + requests: + cpus: '4' + memory: 1g priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml index 4ddf7816..823f1fb1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers -description: Mixed workload with memtier publishing messages and pubsub-sub-bench subscribing to channels simultaneously. +description: Mixed workload with memtier publishing messages and pubsub-sub-bench + subscribing to channels simultaneously. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 2g + dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers tested-groups: - pubsub tested-commands: @@ -18,18 +20,21 @@ build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfigs: - - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram - resources: - requests: - cpus: '4' - memory: 1g - - run_image: filipe958/pubsub-sub-bench:latest - tool: pubsub-sub-bench - arguments: -clients 5000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 - resources: - requests: - cpus: '4' - memory: 1g +- run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum + 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 1g +- run_image: filipe958/pubsub-sub-bench:latest + tool: pubsub-sub-bench + arguments: -clients 5000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix + "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 1 + resources: + requests: + cpus: '4' + memory: 1g priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml index a17373ef..f8f868a3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns -description: Mixed workload with memtier publishing messages and pubsub-sub-bench subscribing to channels simultaneously. +description: Mixed workload with memtier publishing messages and pubsub-sub-bench + subscribing to channels simultaneously. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 2g + dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns tested-groups: - pubsub tested-commands: @@ -18,18 +20,21 @@ build-variants: - gcc:8.5.0-amd64-debian-buster-default - dockerhub clientconfigs: - - run_image: redislabs/memtier_benchmark:edge - tool: memtier_benchmark - arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram - resources: - requests: - cpus: '4' - memory: 1g - - run_image: filipe958/pubsub-sub-bench:latest - tool: pubsub-sub-bench - arguments: -clients 5000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 10 - resources: - requests: - cpus: '4' - memory: 1g +- run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 120 --key-prefix "channel-" --pipeline 1 -d 128 --key-maximum + 100 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 1g +- run_image: filipe958/pubsub-sub-bench:latest + tool: pubsub-sub-bench + arguments: -clients 5000 -channel-minimum 1 -channel-maximum 100 -subscriber-prefix + "channel-" -mode subscribe -test-time 120 -subscribers-per-channel 10 + resources: + requests: + cpus: '4' + memory: 1g priority: 23 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml index 9fe634e8..ec0f33ad 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml @@ -1,12 +1,14 @@ version: 0.4 name: memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers -description: Runs memtier_benchmark, for a empty keyspace doing the PUBSUB's PUBLISH command with no subscribers. +description: Runs memtier_benchmark, for a empty keyspace doing the PUBSUB's PUBLISH + command with no subscribers. dbconfig: configuration-parameters: save: '""' resources: requests: memory: 1g + dataset_name: nokeys-pubsub-publish-1K-channels-10B-no-subscribers tested-groups: - pubsub tested-commands: @@ -19,10 +21,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 -d 10 --key-maximum 1000 --command "PUBLISH __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 -d 10 --key-maximum 1000 --command "PUBLISH + __key__ __data__" --command-key-pattern="R" -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml index 4fb4c501..d99a60ba 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml @@ -7,6 +7,7 @@ dbconfig: resources: requests: memory: 1g + dataset_name: nokeys-server-time-pipeline-10 tested-groups: - server tested-commands: @@ -19,10 +20,10 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 120 --pipeline 10 --command "TIME" --command-key-pattern="R" -c 50 -t 4 --hide-histogram + arguments: --test-time 120 --pipeline 10 --command "TIME" --command-key-pattern="R" + -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' memory: 2g - priority: 21 diff --git a/redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml b/redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml index 75167f17..5c8aca07 100644 --- a/redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml +++ b/redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml @@ -24,12 +24,10 @@ clientconfig: tool: vector_db_benchmark datasets: laion-img-emb-512-1M-cosine engine: redis-hnsw-m-16-ef-128 - #arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram' resources: requests: cpus: '4' memory: 2g - exporter: redistimeseries: break_by: @@ -40,5 +38,4 @@ exporter: - total_time - rps - precision - priority: 38 diff --git a/utils/tests/test_runner.py b/utils/tests/test_runner.py index 65cee87e..f43413d0 100644 --- a/utils/tests/test_runner.py +++ b/utils/tests/test_runner.py @@ -566,7 +566,8 @@ def test_create_client_runner_args(): assert args.benchmark_local_install is True assert getattr(args, 'memtier_bin_path') == "/custom/path/to/memtier_benchmark" - assert args.flushall_on_every_test_start is True + # This test case doesn't include --flushall_on_every_test_start, so it should be False + assert args.flushall_on_every_test_start is False assert args.benchmark_local_install is True @@ -1141,6 +1142,245 @@ def test_remote_profiling_pprof_format(): assert calculate_profile_duration(45) == 30 # maximum 30 seconds +def test_extract_server_info_for_args(): + """Test the auto-detection of server info from Redis INFO SERVER""" + from redis_benchmarks_specification.__runner__.remote_profiling import extract_server_info_for_args + + class MockRedisConnection: + def __init__(self, server_info): + self.server_info = server_info + + def info(self, section): + if section == "server": + return self.server_info + return {} + + # Test case 1: Standard Redis server + mock_redis_standard = MockRedisConnection({ + "redis_version": "7.2.4", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd" + }) + + result = extract_server_info_for_args(mock_redis_standard) + assert result["github_org"] == "redis" + assert result["github_repo"] == "redis" + assert result["github_version"] == "7.2.4" + assert result["github_hash"] == "05eaf6e4" + assert result["server_name"] == "" + + # Test case 2: Valkey server + mock_redis_valkey = MockRedisConnection({ + "server_name": "valkey", + "redis_version": "7.2.4", + "valkey_version": "8.1.3", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd" + }) + + result = extract_server_info_for_args(mock_redis_valkey) + assert result["github_org"] == "valkey-io" + assert result["github_repo"] == "valkey" + assert result["github_version"] == "8.1.3" # Should use valkey_version + assert result["github_hash"] == "05eaf6e4" # Should use redis_git_sha1 + assert result["server_name"] == "valkey" + + # Test case 3: Valkey server without valkey_version (fallback to redis_version) + mock_redis_valkey_no_version = MockRedisConnection({ + "server_name": "valkey", + "redis_version": "7.2.4", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd" + }) + + result = extract_server_info_for_args(mock_redis_valkey_no_version) + assert result["github_org"] == "valkey-io" + assert result["github_repo"] == "valkey" + assert result["github_version"] == "7.2.4" # Should fallback to redis_version + assert result["github_hash"] == "05eaf6e4" # Should use redis_git_sha1 + assert result["server_name"] == "valkey" + + # Test case 4: Server with empty git_sha1 (fallback to build_id) + mock_redis_build_id = MockRedisConnection({ + "redis_version": "6.2.0", + "redis_git_sha1": "00000000", # Empty/zero git_sha1 + "redis_build_id": "abc123def456" + }) + + result = extract_server_info_for_args(mock_redis_build_id) + assert result["github_org"] == "redis" + assert result["github_repo"] == "redis" + assert result["github_version"] == "6.2.0" + assert result["github_hash"] == "abc123def456" # Should fallback to build_id + assert result["server_name"] == "" + + +def test_extract_server_metadata_for_timeseries(): + """Test the extraction of comprehensive server metadata for timeseries""" + from redis_benchmarks_specification.__runner__.remote_profiling import extract_server_metadata_for_timeseries + + class MockRedisConnection: + def __init__(self, server_info): + self.server_info = server_info + + def info(self, section): + if section == "server": + return self.server_info + return {} + + # Test with comprehensive server info (like Amazon ElastiCache) + mock_redis_comprehensive = MockRedisConnection({ + "redis_version": "7.2.4", + "server_name": "valkey", + "valkey_version": "8.1.3", + "valkey_release_stage": "ga", + "os": "Amazon ElastiCache", + "arch_bits": 64, + "gcc_version": "12.2.0", + "server_mode": "standalone", + "multiplexing_api": "epoll", + "atomicvar_api": "c11-builtin", + "monotonic_clock": "POSIX clock_gettime", + "redis_build_id": "9ff8e77d3d80abcd", + "redis_git_dirty": "0", + "process_supervised": "no", + "availability_zone": "us-east-1a", + "io_threads_active": 0, + "config_file": "/etc/redis/redis.conf" + }) + + result = extract_server_metadata_for_timeseries(mock_redis_comprehensive) + + # Verify key metadata fields are extracted + assert result["os"] == "Amazon ElastiCache" + assert result["arch_bits"] == "64" + assert result["gcc_version"] == "12.2.0" + assert result["server_mode"] == "standalone" + assert result["multiplexing_api"] == "epoll" + assert result["atomicvar_api"] == "c11-builtin" + assert result["monotonic_clock"] == "POSIX clock_gettime" + assert result["redis_build_id"] == "9ff8e77d3d80abcd" + assert result["redis_git_dirty"] == "0" + assert result["process_supervised"] == "no" + assert result["availability_zone"] == "us-east-1a" + assert result["io_threads_active"] == "0" + assert result["config_file"] == "/etc/redis/redis.conf" + assert result["server_name"] == "valkey" + assert result["redis_version"] == "7.2.4" + assert result["valkey_version"] == "8.1.3" + assert result["valkey_release_stage"] == "ga" + + # Test with minimal server info + mock_redis_minimal = MockRedisConnection({ + "redis_version": "6.2.0", + "os": "Linux 5.4.0-74-generic x86_64", + "arch_bits": 64 + }) + + result = extract_server_metadata_for_timeseries(mock_redis_minimal) + + # Verify basic fields are extracted + assert result["os"] == "Linux 5.4.0-74-generic x86_64" + assert result["arch_bits"] == "64" + assert result["redis_version"] == "6.2.0" + assert result["config_file"] == "none" # Should default to "none" when empty + + # Fields not present should not be in result + assert "availability_zone" not in result + assert "server_name" not in result + + +def test_conn_mode_metadata(): + """Test that conn_mode metadata is correctly set based on TLS configuration""" + # This test verifies the logic in the runner that sets conn_mode metadata + # We'll test the logic directly since it's simple conditional logic + + # Test TLS enabled case + tls_enabled = True + metadata = {} + + if tls_enabled: + metadata["conn_mode"] = "TLS" + metadata["tls"] = "true" + else: + metadata["conn_mode"] = "PLAINTEXT" + + assert metadata["conn_mode"] == "TLS" + assert metadata["tls"] == "true" + + # Test TLS disabled case + tls_enabled = False + metadata = {} + + if tls_enabled: + metadata["conn_mode"] = "TLS" + metadata["tls"] = "true" + else: + metadata["conn_mode"] = "PLAINTEXT" + + assert metadata["conn_mode"] == "PLAINTEXT" + assert "tls" not in metadata + + +def test_deployment_arguments(): + """Test that deployment arguments are properly configured""" + from redis_benchmarks_specification.__runner__.args import create_client_runner_args + + version_string = "test-version-1.0" + parser = create_client_runner_args(version_string) + + # Test default values + args = parser.parse_args([]) + assert args.deployment_type == "oss-standalone" + assert args.deployment_name == "redis" + assert args.core_count is None + + # Test custom values + args = parser.parse_args([ + "--deployment_type", "oss-cluster", + "--deployment_name", "my-redis-cluster", + "--core_count", "16" + ]) + assert args.deployment_type == "oss-cluster" + assert args.deployment_name == "my-redis-cluster" + assert args.core_count == 16 + + +def test_skip_tests_without_dataset_argument(): + """Test that skip-tests-without-dataset argument is properly configured""" + from redis_benchmarks_specification.__runner__.args import create_client_runner_args + + version_string = "test-version-1.0" + parser = create_client_runner_args(version_string) + + # Test default value + args = parser.parse_args([]) + assert args.skip_tests_without_dataset is False + + # Test when flag is provided + args = parser.parse_args(["--skip-tests-without-dataset"]) + assert args.skip_tests_without_dataset is True + + +def test_memory_comparison_only_argument(): + """Test that memory-comparison-only argument is properly configured""" + from redis_benchmarks_specification.__runner__.args import create_client_runner_args + + version_string = "test-version-1.0" + parser = create_client_runner_args(version_string) + + # Test default value + args = parser.parse_args([]) + assert args.memory_comparison_only is False + + # Test when flag is provided + args = parser.parse_args(["--memory-comparison-only"]) + assert args.memory_comparison_only is True + + def test_run_client_runner_logic(): project_name = "tool" project_version = "v0" From d37736f3429f58978a4304153f8482038af88c77 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 5 Aug 2025 11:30:22 +0100 Subject: [PATCH 06/16] Revamp description and dataset uniqueness --- pyproject.toml | 2 +- .../__common__/runner.py | 120 ++--- .../__common__/timeseries.py | 1 - .../__runner__/runner.py | 449 ++++++++++++++++-- ...eys-hash-hgetall-50-fields-100B-values.yml | 4 +- ...tring-get-10B-pipeline-100-nokeyprefix.yml | 8 +- ..._benchmark-1Mkeys-100B-expire-use-case.yml | 4 +- ...r_benchmark-1Mkeys-10B-expire-use-case.yml | 6 +- ...mark-1Mkeys-10B-psetex-expire-use-case.yml | 8 +- ...hmark-1Mkeys-10B-setex-expire-use-case.yml | 8 +- ..._benchmark-1Mkeys-1KiB-expire-use-case.yml | 9 +- ..._benchmark-1Mkeys-4KiB-expire-use-case.yml | 4 +- ...hmark-1Mkeys-bitmap-getbit-pipeline-10.yml | 8 +- ...mark-1Mkeys-generic-exists-pipeline-10.yml | 6 +- ...mark-1Mkeys-generic-expire-pipeline-10.yml | 6 +- ...rk-1Mkeys-generic-expireat-pipeline-10.yml | 6 +- ...ark-1Mkeys-generic-pexpire-pipeline-10.yml | 6 +- ...eys-generic-scan-count-500-pipeline-10.yml | 6 +- ...eric-scan-cursor-count-500-pipeline-10.yml | 6 +- ...ric-scan-cursor-count-5000-pipeline-10.yml | 6 +- ...1Mkeys-generic-scan-cursor-pipeline-10.yml | 6 +- ...chmark-1Mkeys-generic-scan-pipeline-10.yml | 6 +- ...k-1Mkeys-generic-scan-type-pipeline-10.yml | 6 +- ...hmark-1Mkeys-generic-touch-pipeline-10.yml | 9 +- ...nchmark-1Mkeys-generic-ttl-pipeline-10.yml | 9 +- .../memtier_benchmark-1Mkeys-hash-hexists.yml | 7 +- ...t-hgetall-hkeys-hvals-with-100B-values.yml | 7 +- ...keys-hash-hgetall-50-fields-10B-values.yml | 7 +- .../memtier_benchmark-1Mkeys-hash-hincrby.yml | 7 +- ...ier_benchmark-1Mkeys-hash-hincrbyfloat.yml | 7 +- ...-5-fields-with-100B-values-pipeline-10.yml | 7 +- ...1Mkeys-list-lpop-rpop-with-100B-values.yml | 7 +- ...-1Mkeys-list-lpop-rpop-with-10B-values.yml | 7 +- ...1Mkeys-list-lpop-rpop-with-1KiB-values.yml | 7 +- ...-1Mkeys-list-rpoplpush-with-10B-values.yml | 7 +- ...th-10B-values-pipeline-100-nokeyprefix.yml | 3 +- ...Mkeys-string-append-1-100B-pipeline-10.yml | 7 +- ..._benchmark-1Mkeys-string-append-1-100B.yml | 7 +- .../memtier_benchmark-1Mkeys-string-decr.yml | 7 +- ...ark-1Mkeys-string-get-100B-pipeline-10.yml | 9 +- ...mtier_benchmark-1Mkeys-string-get-100B.yml | 9 +- ...mark-1Mkeys-string-get-10B-pipeline-10.yml | 6 +- ...tring-get-10B-pipeline-100-nokeyprefix.yml | 6 +- ...ark-1Mkeys-string-get-10B-pipeline-100.yml | 6 +- ...mark-1Mkeys-string-get-10B-pipeline-50.yml | 6 +- ...ark-1Mkeys-string-get-10B-pipeline-500.yml | 6 +- ...emtier_benchmark-1Mkeys-string-get-10B.yml | 7 +- ...ark-1Mkeys-string-get-1KiB-pipeline-10.yml | 4 +- ...mtier_benchmark-1Mkeys-string-get-1KiB.yml | 4 +- ...mark-1Mkeys-string-get-32B-pipeline-10.yml | 6 +- ...emtier_benchmark-1Mkeys-string-get-32B.yml | 6 +- ...nchmark-1Mkeys-string-incr-pipeline-10.yml | 1 - ...hmark-1Mkeys-string-incrby-pipeline-10.yml | 1 - ...memtier_benchmark-1Mkeys-string-incrby.yml | 1 - ...-1Mkeys-string-incrbyfloat-pipeline-10.yml | 1 - ...er_benchmark-1Mkeys-string-incrbyfloat.yml | 1 - ...string-int-encoding-strlen-pipeline-10.yml | 4 +- ...tier_benchmark-1Mkeys-string-mget-1KiB.yml | 6 +- ...-50-50-set-get-100B-expire-pipeline-10.yml | 7 +- ...string-mixed-50-50-set-get-100B-expire.yml | 7 +- ...g-mixed-50-50-set-get-100B-pipeline-10.yml | 6 +- ...1Mkeys-string-mixed-50-50-set-get-100B.yml | 6 +- ...ng-mixed-50-50-set-get-1KB-pipeline-10.yml | 9 +- ...-1Mkeys-string-mixed-50-50-set-get-1KB.yml | 9 +- ...ng-mixed-50-50-set-get-32B-pipeline-10.yml | 6 +- ...-1Mkeys-string-mixed-50-50-set-get-32B.yml | 6 +- ...g-mixed-50-50-set-get-512B-pipeline-10.yml | 6 +- ...1Mkeys-string-mixed-50-50-set-get-512B.yml | 6 +- ...set-get-with-expiration-240B-400_conns.yml | 4 +- ...ys-string-set-with-ex-100B-pipeline-10.yml | 7 +- ...k-1Mkeys-string-setex-100B-pipeline-10.yml | 7 +- ...Mkeys-string-setrange-100B-pipeline-10.yml | 7 +- ..._benchmark-1Mkeys-string-setrange-100B.yml | 7 +- ...nchmark-1key-100M-bits-bitmap-bitcount.yml | 6 +- ...ark-1key-1Billion-bits-bitmap-bitcount.yml | 6 +- ...r_benchmark-1key-geo-2-elements-geopos.yml | 2 + ...lements-geosearch-fromlonlat-withcoord.yml | 4 +- ...y-geo-60M-elements-geodist-pipeline-10.yml | 1 + ...enchmark-1key-geo-60M-elements-geodist.yml | 1 + ...y-geo-60M-elements-geohash-pipeline-10.yml | 1 + ...enchmark-1key-geo-60M-elements-geohash.yml | 1 + ...ey-geo-60M-elements-geopos-pipeline-10.yml | 1 + ...benchmark-1key-geo-60M-elements-geopos.yml | 1 + ...0M-elements-geosearch-fromlonlat-bybox.yml | 1 + ...ments-geosearch-fromlonlat-pipeline-10.yml | 1 + ...-geo-60M-elements-geosearch-fromlonlat.yml | 1 + ...key-hash-1K-fields-hgetall-pipeline-10.yml | 4 +- ..._benchmark-1key-hash-1K-fields-hgetall.yml | 4 +- ...K-fields-100B-values-cursor-count-1000.yml | 7 +- ...-1K-fields-10B-values-cursor-count-100.yml | 7 +- ...k-1key-hash-hscan-1K-fields-10B-values.yml | 7 +- ...k-1key-hash-hscan-50-fields-10B-values.yml | 7 +- ...ements-lrange-all-elements-pipeline-10.yml | 1 + ...y-list-10-elements-lrange-all-elements.yml | 1 + ...t-uint-lrange-all-elements-pipeline-10.yml | 4 +- ...ts-int-lrange-all-elements-pipeline-10.yml | 2 + ...key-list-100-elements-llen-pipeline-10.yml | 3 +- ...ements-lrange-all-elements-pipeline-10.yml | 3 +- ...-list-100-elements-lrange-all-elements.yml | 3 +- ...-1key-list-10K-elements-lindex-integer.yml | 3 +- ...10K-elements-lindex-string-pipeline-10.yml | 3 +- ...k-1key-list-10K-elements-lindex-string.yml | 3 +- ...list-10K-elements-linsert-lrem-integer.yml | 3 +- ...-list-10K-elements-linsert-lrem-string.yml | 3 +- ...rk-1key-list-10K-elements-lpos-integer.yml | 3 +- ...ark-1key-list-10K-elements-lpos-string.yml | 3 +- ...ements-lrange-all-elements-pipeline-10.yml | 3 +- ...y-list-1K-elements-lrange-all-elements.yml | 3 +- ...ts-quicklist-lrange-all-elements-longs.yml | 3 +- ...y-set-10-elements-smembers-pipeline-10.yml | 3 +- ...enchmark-1key-set-10-elements-smembers.yml | 3 +- ...chmark-1key-set-10-elements-smismember.yml | 3 +- ...set-100-elements-sismember-is-a-member.yml | 3 +- ...et-100-elements-sismember-not-a-member.yml | 3 +- ...nchmark-1key-set-100-elements-smembers.yml | 3 +- ...hmark-1key-set-100-elements-smismember.yml | 3 +- ..._benchmark-1key-set-100-elements-sscan.yml | 3 +- ...et-10M-elements-sismember-50pct-chance.yml | 5 +- ...key-set-10M-elements-srem-50pct-chance.yml | 5 +- ...enchmark-1key-set-1K-elements-smembers.yml | 3 +- ...set-1K-elements-sscan-cursor-count-100.yml | 3 +- ...r_benchmark-1key-set-1K-elements-sscan.yml | 3 +- ...set-1M-elements-sismember-50pct-chance.yml | 5 +- ...k-1key-set-200K-elements-sadd-constant.yml | 4 +- ...rk-1key-zincrby-1M-elements-pipeline-1.yml | 10 +- ...rk-1key-zrank-100K-elements-pipeline-1.yml | 4 +- ...ark-1key-zrank-10M-elements-pipeline-1.yml | 4 +- ...mark-1key-zrank-1M-elements-pipeline-1.yml | 8 +- ...hmark-1key-zrem-5M-elements-pipeline-1.yml | 6 +- ...vrangebyscore-256K-elements-pipeline-1.yml | 6 +- ...rangebyscore-256K-elements-pipeline-10.yml | 6 +- ...k-1key-zrevrank-1M-elements-pipeline-1.yml | 10 +- ...ements-zrange-all-elements-long-scores.yml | 4 +- ...y-zset-10-elements-zrange-all-elements.yml | 4 +- ...-zset-100-elements-zrange-all-elements.yml | 4 +- ...zrangebyscore-all-elements-long-scores.yml | 4 +- ...00-elements-zrangebyscore-all-elements.yml | 4 +- ...benchmark-1key-zset-100-elements-zscan.yml | 4 +- ...y-zset-1K-elements-zrange-all-elements.yml | 3 +- ..._benchmark-1key-zset-1K-elements-zscan.yml | 3 +- ...key-zset-1M-elements-zcard-pipeline-10.yml | 4 +- ...-elements-zremrangebyscore-pipeline-10.yml | 4 +- ...-zset-1M-elements-zrevrange-5-elements.yml | 4 +- ...ange-withscores-5-elements-pipeline-10.yml | 4 +- ...ey-zset-1M-elements-zscore-pipeline-10.yml | 4 +- ...-600K-elements-zrangestore-1K-elements.yml | 6 +- ...00K-elements-zrangestore-300K-elements.yml | 6 +- ...listpack-zrank-100-elements-pipeline-1.yml | 4 +- ...chmark-2keys-set-10-100-elements-sdiff.yml | 4 +- ...hmark-2keys-set-10-100-elements-sinter.yml | 4 +- ...hmark-2keys-set-10-100-elements-sunion.yml | 4 +- ...-entries-xread-all-entries-pipeline-10.yml | 3 +- ...eys-stream-5-entries-xread-all-entries.yml | 3 +- ...t-300-elements-skiplist-encoded-zunion.yml | 3 +- ...-elements-skiplist-encoded-zunionstore.yml | 3 +- ...-string-get-with-1KiB-values-400_conns.yml | 6 +- ...s-string-get-with-1KiB-values-40_conns.yml | 6 +- ...ith-1KiB-values-pipeline-10-2000_conns.yml | 6 +- ...with-1KiB-values-pipeline-10-400_conns.yml | 6 +- ...-with-1KiB-values-pipeline-10-40_conns.yml | 6 +- ...mixed-20-80-with-512B-values-400_conns.yml | 6 +- ...ith-512B-values-pipeline-10-2000_conns.yml | 6 +- ...with-512B-values-pipeline-10-400_conns.yml | 6 +- ...ith-512B-values-pipeline-10-5200_conns.yml | 6 +- ...-with-expiration-pipeline-10-400_conns.yml | 3 +- ...ark-nokeys-connection-ping-pipeline-10.yml | 1 - ...ls-128B-100-publishers-100-subscribers.yml | 1 - ...s-128B-100-publishers-1000-subscribers.yml | 1 - ...s-128B-100-publishers-5000-subscribers.yml | 1 - ...00-publishers-50K-subscribers-5k-conns.yml | 1 - ...publish-1K-channels-10B-no-subscribers.yml | 1 - ...nchmark-nokeys-server-time-pipeline-10.yml | 1 - 172 files changed, 1004 insertions(+), 359 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index fd9ed7ba..cb4c1e16 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.291" +version = "0.1.298" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__common__/runner.py b/redis_benchmarks_specification/__common__/runner.py index 947345b2..230f9834 100644 --- a/redis_benchmarks_specification/__common__/runner.py +++ b/redis_benchmarks_specification/__common__/runner.py @@ -153,6 +153,8 @@ def exporter_datasink_common( topology_spec_name, default_metrics=None, git_hash=None, + collect_commandstats=True, + collect_memory_metrics=True, ): logging.info( f"Using datapoint_time_ms: {datapoint_time_ms}. git_hash={git_hash}, git_branch={git_branch}, git_version={git_version}. gh_org={tf_github_org}, gh_repo={tf_github_repo}" @@ -181,71 +183,77 @@ def exporter_datasink_common( None, git_hash, ) - logging.info("Collecting memory metrics") - ( - _, - _, - overall_end_time_metrics, - ) = collect_redis_metrics( - redis_conns, - ["memory"], - { - "memory": [ - "used_memory", - "used_memory_dataset", - ] - }, - ) - print(overall_end_time_metrics) - # 7 days from now - expire_redis_metrics_ms = 7 * 24 * 60 * 60 * 1000 - export_redis_metrics( - git_version, - datapoint_time_ms, - overall_end_time_metrics, - datasink_conn, - setup_name, - setup_type, - test_name, - git_branch, - tf_github_org, - tf_github_repo, - tf_triggering_env, - {"metric-type": "redis-metrics"}, - expire_redis_metrics_ms, - ) - logging.info("Collecting commandstat metrics") - ( - _, - _, - overall_commandstats_metrics, - ) = collect_redis_metrics(redis_conns, ["commandstats"]) - export_redis_metrics( - git_version, - datapoint_time_ms, - overall_commandstats_metrics, - datasink_conn, - setup_name, - setup_type, - test_name, - git_branch, - tf_github_org, - tf_github_repo, - tf_triggering_env, - {"metric-type": "commandstats"}, - expire_redis_metrics_ms, - ) + if collect_memory_metrics: + logging.info("Collecting memory metrics") + ( + _, + _, + overall_end_time_metrics, + ) = collect_redis_metrics( + redis_conns, + ["memory"], + { + "memory": [ + "used_memory", + "used_memory_dataset", + ] + }, + ) + print(overall_end_time_metrics) + # 7 days from now + expire_redis_metrics_ms = 7 * 24 * 60 * 60 * 1000 + export_redis_metrics( + git_version, + datapoint_time_ms, + overall_end_time_metrics, + datasink_conn, + setup_name, + setup_type, + test_name, + git_branch, + tf_github_org, + tf_github_repo, + tf_triggering_env, + {"metric-type": "redis-memory-metrics"}, + expire_redis_metrics_ms, + git_hash, + running_platform, + ) + if collect_commandstats: + logging.info("Collecting commandstat metrics") + ( + _, + _, + overall_commandstats_metrics, + ) = collect_redis_metrics(redis_conns, ["commandstats"]) + export_redis_metrics( + git_version, + datapoint_time_ms, + overall_commandstats_metrics, + datasink_conn, + setup_name, + setup_type, + test_name, + git_branch, + tf_github_org, + tf_github_repo, + tf_triggering_env, + {"metric-type": "commandstats"}, + expire_redis_metrics_ms, + git_hash, + running_platform, + ) # Update deployment tracking sets deployment_type_and_name = f"{setup_type}_AND_{setup_name}" deployment_type_and_name_and_version = f"{setup_type}_AND_{setup_name}_AND_{git_version}" # Add to deployment-specific set - deployment_set_key = f"ci.benchmarks.redislabs/{tf_triggering_env}/{deployment_type_and_name_and_version}:set" + deployment_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/{deployment_type_and_name_and_version}:set" datasink_conn.sadd(deployment_set_key, test_name) # Add to testcases set - testcases_set_key = f"ci.benchmarks.redislabs/{tf_triggering_env}/testcases:set" + testcases_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/testcases:set" datasink_conn.sadd(testcases_set_key, test_name) # Add metadata fields to timeseries metadata diff --git a/redis_benchmarks_specification/__common__/timeseries.py b/redis_benchmarks_specification/__common__/timeseries.py index 95eb3cca..17d9629d 100644 --- a/redis_benchmarks_specification/__common__/timeseries.py +++ b/redis_benchmarks_specification/__common__/timeseries.py @@ -1173,7 +1173,6 @@ def timeseries_test_sucess_flow( testcase_metric_context_paths = [] version_target_tables = None branch_target_tables = None - if timeseries_dict is None: ( timeseries_dict, diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index 4890737f..e05b0dfb 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -28,6 +28,8 @@ prepare_benchmark_parameters, dbconfig_keyspacelen_check, ) +from redisbench_admin.run_remote.run_remote import export_redis_metrics + from redisbench_admin.run.metrics import extract_results_table from redisbench_admin.run.run import calculate_client_tool_duration_and_check from redisbench_admin.utils.benchmark_config import ( @@ -221,6 +223,176 @@ def extract_expected_benchmark_duration( return 30 +def detect_object_encoding(redis_conn, dbconfig): + """ + Detect object encoding by scanning 1% of the dataset. + + Args: + redis_conn: Redis connection + dbconfig: Database configuration containing keyspace info + + Returns: + Dict with encoding information + """ + try: + # Get total key count + total_keys = redis_conn.dbsize() + logging.debug(f"Object encoding detection: DBSIZE reports {total_keys} keys") + + if total_keys == 0: + logging.warning("No keys found in database for encoding detection") + return { + "encoding": "unknown", + "confidence": 0.0, + "sample_size": 0, + "total_keys": 0, + "encoding_distribution": {} + } + + # Determine scanning strategy based on dataset size + if total_keys <= 1000: + # For small datasets, scan all keys for complete accuracy + sample_size = total_keys + scan_all_keys = True + logging.info(f"Scanning all {total_keys} keys (small dataset - complete analysis)") + else: + # For large datasets, sample 1% (minimum 10, maximum 1000) + sample_size = max(10, min(1000, int(total_keys * 0.01))) + scan_all_keys = False + logging.info(f"Sampling {sample_size} keys out of {total_keys} total keys ({(sample_size/total_keys)*100:.2f}%)") + + # Use SCAN to get keys + encoding_counts = {} + scanned_keys = [] + cursor = 0 + + if scan_all_keys: + # Scan all keys in the database + while True: + cursor, keys = redis_conn.scan(cursor=cursor, count=100) + scanned_keys.extend(keys) + + # Break if we've completed a full scan + if cursor == 0: + break + else: + # Sample keys until we reach our target sample size + while len(scanned_keys) < sample_size: + cursor, keys = redis_conn.scan(cursor=cursor, count=min(100, sample_size - len(scanned_keys))) + scanned_keys.extend(keys) + + # Break if we've completed a full scan + if cursor == 0: + break + + # Limit to our target sample size + scanned_keys = scanned_keys[:sample_size] + + logging.debug(f"SCAN completed: found {len(scanned_keys)} keys, cursor ended at {cursor}") + + # If SCAN didn't find any keys but we know there are keys, try KEYS command as fallback + if len(scanned_keys) == 0 and total_keys > 0: + logging.warning(f"SCAN found no keys but DBSIZE reports {total_keys} keys. Trying KEYS fallback.") + try: + # Use KEYS * as fallback (only for small datasets to avoid blocking) + if total_keys <= 1000: + all_keys = redis_conn.keys('*') + scanned_keys = all_keys[:sample_size] if not scan_all_keys else all_keys + logging.info(f"KEYS fallback found {len(scanned_keys)} keys") + else: + logging.error(f"Cannot use KEYS fallback for large dataset ({total_keys} keys)") + except Exception as e: + logging.error(f"KEYS fallback failed: {e}") + + # Final check: if we still have no keys, return early + if len(scanned_keys) == 0: + logging.error(f"No keys found for encoding detection despite DBSIZE={total_keys}") + return { + "encoding": "unknown", + "confidence": 0.0, + "sample_size": 0, + "total_keys": total_keys, + "encoding_distribution": {}, + "is_complete_scan": scan_all_keys, + "error": "No keys found by SCAN or KEYS commands" + } + + # Get encoding for each sampled key + successful_encodings = 0 + for i, key in enumerate(scanned_keys): + try: + # Use the redis-py object_encoding method instead of raw command + encoding = redis_conn.object("ENCODING", key) + if isinstance(encoding, bytes): + encoding = encoding.decode('utf-8') + elif encoding is None: + # Key might have expired or been deleted + logging.debug(f"Key '{key}' returned None encoding (key may have expired)") + continue + + encoding_counts[encoding] = encoding_counts.get(encoding, 0) + 1 + successful_encodings += 1 + + # Log first few keys for debugging + if i < 3: + logging.debug(f"Key '{key}' has encoding '{encoding}'") + + except Exception as e: + logging.warning(f"Failed to get encoding for key {key}: {e}") + continue + + logging.debug(f"Successfully got encoding for {successful_encodings}/{len(scanned_keys)} keys") + + if not encoding_counts: + logging.warning(f"No object encodings detected! Scanned {len(scanned_keys)} keys, successful encodings: {successful_encodings}") + return { + "encoding": "unknown", + "confidence": 0.0, + "sample_size": 0, + "total_keys": total_keys, + "encoding_distribution": {}, + "is_complete_scan": scan_all_keys + } + + # Determine dominant encoding + total_sampled = sum(encoding_counts.values()) + dominant_encoding = max(encoding_counts.items(), key=lambda x: x[1]) + confidence = dominant_encoding[1] / total_sampled + + # Calculate encoding distribution percentages + encoding_distribution = { + enc: (count / total_sampled) * 100 + for enc, count in encoding_counts.items() + } + + result = { + "encoding": dominant_encoding[0], + "confidence": confidence, + "sample_size": total_sampled, + "total_keys": total_keys, + "encoding_distribution": encoding_distribution, + "is_complete_scan": scan_all_keys + } + + scan_type = "complete scan" if scan_all_keys else "sample" + logging.info(f"Object encoding analysis ({scan_type}): {dominant_encoding[0]} ({confidence*100:.1f}% confidence)") + if len(encoding_counts) > 1: + logging.info(f"Encoding distribution: {encoding_distribution}") + + return result + + except Exception as e: + logging.error(f"Failed to detect object encoding: {e}") + return { + "encoding": "error", + "confidence": 0.0, + "sample_size": 0, + "total_keys": 0, + "encoding_distribution": {}, + "error": str(e) + } + + def run_multiple_clients( benchmark_config, docker_client, @@ -1109,6 +1281,7 @@ def delete_temporary_files( dry_run_count = 0 dry_run_tests = [] # Track test names for dry run output memory_results = [] # Track memory results for memory comparison mode + loaded_datasets = set() # Track datasets that have been loaded (for memory comparison mode) dry_run = args.dry_run memory_comparison_only = args.memory_comparison_only dry_run_include_preload = args.dry_run_include_preload @@ -1123,6 +1296,43 @@ def delete_temporary_files( _, ) = get_defaults(defaults_filename) + # For memory comparison mode, analyze datasets before starting + if memory_comparison_only: + unique_datasets = set() + total_tests_with_datasets = 0 + + logging.info("Analyzing datasets for memory comparison mode...") + for test_file in testsuite_spec_files: + if defaults_filename in test_file: + continue + try: + with open(test_file, "r") as stream: + benchmark_config = yaml.safe_load(stream) + + if "dbconfig" in benchmark_config: + # Skip load tests (keyspacelen = 0) in memory comparison mode + keyspacelen = benchmark_config["dbconfig"].get("check", {}).get("keyspacelen", None) + if keyspacelen is not None and keyspacelen == 0: + logging.debug(f"Skipping load test {test_file} (keyspacelen=0)") + continue + + dataset_name = benchmark_config["dbconfig"].get("dataset_name") + if dataset_name: + unique_datasets.add(dataset_name) + total_tests_with_datasets += 1 + + except Exception as e: + logging.warning(f"Error analyzing {test_file}: {e}") + + logging.info(f"Memory comparison mode analysis:") + logging.info(f" Total tests with datasets: {total_tests_with_datasets}") + logging.info(f" Unique datasets to load: {len(unique_datasets)}") + logging.info(f" Dataset ingestion savings: {total_tests_with_datasets - len(unique_datasets)} skipped loads") + logging.info(f" Load tests skipped: Tests with keyspacelen=0 are automatically excluded") + + if len(unique_datasets) > 0: + logging.info(f" Unique datasets: {', '.join(sorted(unique_datasets))}") + for test_file in tqdm.tqdm(testsuite_spec_files): # Check if user requested exit via Ctrl+C if _exit_requested: @@ -1222,7 +1432,7 @@ def delete_temporary_files( logging.info(f"Auto-detected github_version: {git_version}") # Auto-detect git hash if it's the default value - if git_hash == "NA" and detected_info["github_hash"] != "unknown": + if (git_hash is None or git_hash == "NA") and detected_info["github_hash"] != "unknown": git_hash = detected_info["github_hash"] logging.info(f"Auto-detected git_hash: {git_hash}") @@ -1493,46 +1703,60 @@ def delete_temporary_files( continue if "dbconfig" in benchmark_config: if "preload_tool" in benchmark_config["dbconfig"]: - # Get timeout buffer for preload - buffer_timeout = getattr( - args, - "timeout_buffer", - getattr(args, "container_timeout_buffer", 60), - ) - - res = data_prepopulation_step( - benchmark_config, - benchmark_tool_workdir, - client_cpuset_cpus, - docker_client, - git_hash, - port, - temporary_dir_client, - test_name, - host, - tls_enabled, - tls_skip_verify, - test_tls_cert, - test_tls_key, - test_tls_cacert, - resp_version, - args.benchmark_local_install, - password, - oss_cluster_api_enabled, - unix_socket, - buffer_timeout, - args, - ) - if res is False: - logging.warning( - "Skipping this test given preload result was false" + # Check if this dataset has already been loaded (for memory comparison mode) + dataset_name = benchmark_config["dbconfig"].get("dataset_name") + skip_preload = False + + if memory_comparison_only and dataset_name: + if dataset_name in loaded_datasets: + logging.info(f"Skipping preload for dataset '{dataset_name}' - already loaded") + skip_preload = True + continue + else: + logging.info(f"Loading dataset '{dataset_name}' for the first time") + loaded_datasets.add(dataset_name) + + if not skip_preload: + # Get timeout buffer for preload + buffer_timeout = getattr( + args, + "timeout_buffer", + getattr(args, "container_timeout_buffer", 60), ) - delete_temporary_files( - temporary_dir_client=temporary_dir_client, - full_result_path=None, - benchmark_tool_global=benchmark_tool_global, + + res = data_prepopulation_step( + benchmark_config, + benchmark_tool_workdir, + client_cpuset_cpus, + docker_client, + git_hash, + port, + temporary_dir_client, + test_name, + host, + tls_enabled, + tls_skip_verify, + test_tls_cert, + test_tls_key, + test_tls_cacert, + resp_version, + args.benchmark_local_install, + password, + oss_cluster_api_enabled, + unix_socket, + buffer_timeout, + args, ) - continue + if res is False: + logging.warning( + "Skipping this test given preload result was false" + ) + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue # Send MEMORY PURGE before preload for memory comparison mode (if FLUSHALL wasn't already done) if memory_comparison_only and not args.flushall_on_every_test_start: try: @@ -1562,6 +1786,43 @@ def delete_temporary_files( # For memory comparison mode, collect memory stats after preload and skip client benchmark if memory_comparison_only: + # Initialize timing variables for memory comparison mode + ( + start_time, + start_time_ms, + start_time_str, + ) = get_start_time_vars() + dataset_load_duration_seconds = 0 # No dataset loading time for memory comparison + + # Skip load tests (keyspacelen = 0) in memory comparison mode + keyspacelen = benchmark_config.get("dbconfig", {}).get("check", {}).get("keyspacelen", None) + if keyspacelen is not None and keyspacelen == 0: + logging.info(f"Skipping load test {test_name} in memory comparison mode (keyspacelen=0)") + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + + # Handle dry run for memory comparison mode + if dry_run: + dry_run_count = dry_run_count + 1 + dry_run_tests.append(test_name) + logging.info(f"[DRY RUN] Would collect memory stats for test {test_name}") + + # Add dataset info to dry run output + dataset_name = benchmark_config.get("dbconfig", {}).get("dataset_name") + if dataset_name: + logging.info(f"[DRY RUN] Dataset: {dataset_name}") + + delete_temporary_files( + temporary_dir_client=temporary_dir_client, + full_result_path=None, + benchmark_tool_global=benchmark_tool_global, + ) + continue + logging.info(f"Collecting memory stats for test {test_name}") try: # Use raw command to avoid parsing issues with some Redis versions @@ -1595,6 +1856,11 @@ def delete_temporary_files( "allocator-fragmentation.ratio": 1.0, } + # Detect object encoding by scanning 1% of the dataset + object_encoding_info = detect_object_encoding(r, benchmark_config.get("dbconfig", {})) + logging.info(f"Object encoding detection: {object_encoding_info.get('encoding', 'unknown')} " + f"({object_encoding_info.get('confidence', 0)*100:.1f}% confidence)") + # Extract key memory metrics memory_result = { "test_name": test_name, @@ -1609,6 +1875,12 @@ def delete_temporary_files( "allocator_allocated": memory_stats.get("allocator.allocated", 0), "allocator_resident": memory_stats.get("allocator.resident", 0), "allocator_fragmentation_ratio": memory_stats.get("allocator-fragmentation.ratio", 0), + # Object encoding information + "object_encoding": object_encoding_info.get("encoding", "unknown"), + "encoding_confidence": object_encoding_info.get("confidence", 0.0), + "encoding_sample_size": object_encoding_info.get("sample_size", 0), + "encoding_distribution": object_encoding_info.get("encoding_distribution", {}), + "encoding_is_complete_scan": object_encoding_info.get("is_complete_scan", False), } memory_results.append(memory_result) @@ -1626,8 +1898,47 @@ def delete_temporary_files( "memory.allocator_allocated": memory_result["allocator_allocated"], "memory.allocator_resident": memory_result["allocator_resident"], "memory.allocator_fragmentation_ratio": memory_result["allocator_fragmentation_ratio"], + "memory.encoding_confidence": memory_result["encoding_confidence"], + "memory.encoding_sample_size": memory_result["encoding_sample_size"], } + # Add object encoding to metadata + metadata["object_encoding"] = memory_result["object_encoding"] + metadata["encoding_confidence"] = f"{memory_result['encoding_confidence']:.3f}" + metadata["encoding_sample_size"] = str(memory_result["encoding_sample_size"]) + metadata["encoding_scan_type"] = "complete" if memory_result.get("encoding_is_complete_scan", False) else "sample" + + # Add encoding distribution to metadata if multiple encodings found + if len(memory_result["encoding_distribution"]) > 1: + for enc, percentage in memory_result["encoding_distribution"].items(): + metadata[f"encoding_dist_{enc}"] = f"{percentage:.1f}%" + + # Set datapoint_time_ms for memory comparison mode + datapoint_time_ms = start_time_ms + # 7 days from now + expire_redis_metrics_ms = 7 * 24 * 60 * 60 * 1000 + metadata["metric-type"] = "memory-stats" + + # Debug: Check git_hash value and memory metrics before export + logging.info(f"DEBUG: About to export memory metrics with git_hash='{git_hash}', type={type(git_hash)}") + logging.info(f"DEBUG: memory_metrics_dict has {len(memory_metrics_dict)} items: {list(memory_metrics_dict.keys())}") + logging.info(f"DEBUG: Sample values: {dict(list(memory_metrics_dict.items())[:3])}") + export_redis_metrics( + git_version, + datapoint_time_ms, + memory_metrics_dict, + datasink_conn, + setup_name, + setup_type, + test_name, + git_branch, + tf_github_org, + tf_github_repo, + tf_triggering_env, + {"metric-type": "memory-stats"}, + expire_redis_metrics_ms, + ) + exporter_datasink_common( benchmark_config, 0, # benchmark_duration_seconds = 0 for memory only @@ -1651,6 +1962,8 @@ def delete_temporary_files( topology_spec_name, default_metrics, git_hash, + collect_commandstats=False, + collect_memory_metrics=True, ) # Send MEMORY PURGE after memory comparison (if FLUSHALL at test end is not enabled) @@ -2344,6 +2657,10 @@ def delete_temporary_files( logging.info("\n" + "="*80) logging.info("MEMORY COMPARISON SUMMARY") logging.info("="*80) + logging.info(f"Total unique datasets loaded: {len(loaded_datasets)}") + if loaded_datasets: + logging.info(f"Datasets: {', '.join(sorted(loaded_datasets))}") + logging.info("="*80) # Create memory summary table memory_headers = [ @@ -2355,7 +2672,10 @@ def delete_temporary_files( "Dataset %", "Overhead", "Fragmentation", - "Alloc Fragmentation" + "Alloc Fragmentation", + "Object Encoding", + "Encoding Confidence", + "Scan Type" ] memory_matrix = [] @@ -2374,7 +2694,10 @@ def delete_temporary_files( f"{result['dataset_percentage']:.1f}%", f"{overhead_mb:.1f}MB", f"{result['fragmentation']:.2f}", - f"{result['allocator_fragmentation_ratio']:.3f}" + f"{result['allocator_fragmentation_ratio']:.3f}", + result.get("object_encoding", "unknown"), + f"{result.get('encoding_confidence', 0.0)*100:.1f}%", + "complete" if result.get("encoding_is_complete_scan", False) else "sample" ]) memory_writer = MarkdownTableWriter( @@ -2385,16 +2708,56 @@ def delete_temporary_files( memory_writer.write_table() if dry_run is True: + mode_description = "memory comparison" if memory_comparison_only else "benchmark" logging.info( - "Number of tests that would have been run: {}".format(dry_run_count) + "Number of tests that would have been run ({}): {}".format(mode_description, dry_run_count) ) if _exit_requested: logging.info("(Note: Execution was stopped early by user request)") if dry_run_tests: - logging.info("Tests that would be run:") + logging.info(f"Tests that would be run ({mode_description} mode):") + for test in dry_run_tests: + logging.info(f" - {test}") final_test_regex = "|".join(dry_run_tests) logging.info(f"Final test regex: {final_test_regex}") + # For memory comparison mode, show dataset analysis + if memory_comparison_only: + unique_datasets = set() + tests_with_datasets = 0 + + for test_file in testsuite_spec_files: + if defaults_filename in test_file: + continue + try: + with open(test_file, "r") as stream: + benchmark_config = yaml.safe_load(stream) + + test_name = extract_test_name_from_test_configuration_file(test_file) + if test_name in dry_run_tests and "dbconfig" in benchmark_config: + # Skip load tests in dry run analysis too + keyspacelen = benchmark_config["dbconfig"].get("check", {}).get("keyspacelen", None) + if keyspacelen is not None and keyspacelen == 0: + continue + + dataset_name = benchmark_config["dbconfig"].get("dataset_name") + if dataset_name: + unique_datasets.add(dataset_name) + tests_with_datasets += 1 + + except Exception as e: + logging.debug(f"Error analyzing {test_file} for dry run: {e}") + + if tests_with_datasets > 0: + logging.info(f"\nMemory comparison analysis:") + logging.info(f" Tests with datasets: {tests_with_datasets}") + logging.info(f" Unique datasets: {len(unique_datasets)}") + logging.info(f" Dataset ingestion savings: {tests_with_datasets - len(unique_datasets)} skipped loads") + if unique_datasets: + logging.info(f" Datasets that would be loaded:") + for dataset in sorted(unique_datasets): + logging.info(f" - {dataset}") + def get_maxmemory(r): memory_info = r.info("memory") diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml index 2b0483ef..941ec3ee 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values.yml @@ -27,7 +27,9 @@ dbconfig: resources: requests: memory: 2g - dataset_name: 100Kkeys-hash-hgetall-50-fields-100B-values + dataset_name: 100Kkeys-hash-50-fields-100B-size + dataset_description: This dataset contains 100,000 hash keys, each with 50 fields + and each field has a data size of 100 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index eae4e76b..ba47eb5a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-10Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -11,12 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "4" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "10000000" "-n" - "allkeys"' + "-t" "1" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "10000000" "-n" + "allkeys" --pipeline 50' resources: requests: memory: 10g - dataset_name: 10Mkeys-string-get-10B-pipeline-100-nokeyprefix + dataset_name: 10Mkeys-string-10B-size-nokeyprefix + dataset_description: This dataset contains 10 million string keys, each with a data + size of 10 bytes. There is no key prefix on the keys, meaning key names are 1,2,3,... tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml index 3da47505..3ce14a2f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml @@ -17,7 +17,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-100B-expire-use-case + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-groups: - string - generic diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml index 2289c519..1ebab755 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-expire-use-case.yml @@ -13,11 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" - "1000000"' + "1000000" "-n" "allkeys"' resources: requests: memory: 1g - dataset_name: 1Mkeys-10B-expire-use-case + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-groups: - string - generic diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml index bb1214f8..64c2b92e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-psetex-expire-use-case.yml @@ -11,13 +11,15 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" + arguments: '"--data-size" "10" --ratio 1:0 "--key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" - "1000000"' + "1000000" "-n" "allkeys"' resources: requests: memory: 1g - dataset_name: 1Mkeys-10B-psetex-expire-use-case + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml index fa814725..58699d9f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-10B-setex-expire-use-case.yml @@ -11,13 +11,15 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "10" "--command" "SET __key__ __data__" "--command-key-pattern" + arguments: '"--data-size" "10" --ratio 1:0 "--key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" - "1000000"' + "1000000" "-n" "allkeys"' resources: requests: memory: 1g - dataset_name: 1Mkeys-10B-setex-expire-use-case + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml index fbac2669..9c20972e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-1KiB-expire-use-case.yml @@ -11,13 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--command" "SET __key__ __data__" "--command-key-pattern" - "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" - "1000000"' + arguments: --data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern + P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000 resources: requests: memory: 2g - dataset_name: 1Mkeys-1KiB-expire-use-case + dataset_name: 1Mkeys-string-1KiB-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. tested-groups: - string - generic diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml index 6bf82236..a23aec58 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-4KiB-expire-use-case.yml @@ -17,7 +17,9 @@ dbconfig: resources: requests: memory: 3g - dataset_name: 1Mkeys-4KiB-expire-use-case + dataset_name: 1Mkeys-string-4KiB-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 4 KiB. Half of the keys have an expiration set. tested-groups: - string - generic diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml index 00e6ab27..0858d8cf 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10.yml @@ -11,12 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --hide-histogram --key-minimum 1 --key-maximum 10000000 -c 50 -t 2 - --pipeline 10 --command "SETBIT __key__ 1 1" --command-key-pattern "P" + --pipeline 50 --command "SETBIT __key__ 1 1" --command-key-pattern "P" resources: requests: cpus: '2' memory: 1g - dataset_name: 1Mkeys-bitmap-getbit-pipeline-10 + dataset_name: 1Mkeys-bitmap-1bit-size + dataset_description: This dataset contains 1 million bitmap keys, each with a size + of 1 bit. tested-commands: - getbit tested-groups: @@ -29,7 +31,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 10 --command="GETBIT __key__ 1" --command-key-pattern="R" --command + arguments: --pipeline 50 --command="GETBIT __key__ 1" --command-key-pattern="R" --command "GETBIT __key__ 100" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 180 resources: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml index 3fc7a8fd..fa8fc2e3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-exists-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-exists-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - exists tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml index 84141b79..0457163f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expire-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-expire-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - expire tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml index b0eec95f..0d3fc410 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-expireat-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-expireat-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - expireat tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml index fd5e65ed..1f1ec1d4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-pexpire-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - pexpire tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml index 3ec330be..0758162b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-count-500-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-count-500-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml index 6c020be5..01537b12 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-500-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-cursor-count-500-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml index 58c4dfa9..2ba5cb4a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-count-5000-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-cursor-count-5000-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml index 2843d46b..39f0dfbf 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-cursor-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-cursor-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml index 73ff6f9f..8e7ae4b8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml index 914999d5..19642dc7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-scan-type-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--pipeline" "100" "--data-size" "100" "--command" "HSET __key__ field __data__" "--command-key-pattern" "P" "-c" "50" "-t" "2" "--hide-histogram" - "--key-minimum" "1"' + "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-scan-type-pipeline-10 + dataset_name: 1Mkeys-hash-1-field-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 1 field + and each field has a data size of 100 bytes. tested-commands: - scan tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml index 1690013b..1cfff57f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-touch-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" - "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-touch-pipeline-10 + dataset_name: 1Mkeys-string-100B-size-with-expiration + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - touch tested-groups: @@ -29,7 +32,7 @@ clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command "TOUCH __key__" --pipeline 10 --command-key-pattern="R" -c - 50 -t 2 --hide-histogram --test-time 180 + 50 -t 2 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum 1000000 resources: requests: cpus: '2' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml index 9088d60d..e568c6a1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-generic-ttl-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--command" "SETEX __key__ 3600 __data__" "--command-key-pattern" - "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" + "1000000" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-generic-ttl-pipeline-10 + dataset_name: 1Mkeys-string-100B-size-with-expiration + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - ttl tested-groups: @@ -29,7 +32,7 @@ clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command "TTL __key__" --pipeline 10 --command-key-pattern="R" -c 50 - -t 2 --hide-histogram --test-time 180 + -t 2 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum 1000000 resources: requests: cpus: '2' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml index 5c826882..1778ac32 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hexists.yml @@ -13,11 +13,14 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-hash-hexists + dataset_name: 1Mkeys-hash-5-fields-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 5 fields + and each field has a data size of 100 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml index 538d24d0..1f2d8232 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values.yml @@ -13,11 +13,14 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values + dataset_name: 1Mkeys-hash-5-fields-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 5 fields + and each field has a data size of 100 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml index d14bd163..5b667494 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values.yml @@ -4,7 +4,7 @@ description: Runs memtier_benchmark, for a keyspace length of 1M keys pre-loadin HASHes in which the value has a data size of 10 Bytes. After pre-loading the data it issues HGETALL command. dbconfig: - dataset_name: 1Mkeys-hash-hgetall-50-fields-10B-values + dataset_name: 1Mkeys-hash-50-fields-10B-size configuration-parameters: save: '""' check: @@ -24,10 +24,13 @@ dbconfig: __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 2g + dataset_description: This dataset contains 1 million hash keys, each with 50 fields + and each field has a data size of 10 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml index 0d85d301..ba35b429 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrby.yml @@ -12,11 +12,14 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 6g - dataset_name: 1Mkeys-hash-hincrby + dataset_name: 1Mkeys-hash-5-fields-1000B-size + dataset_description: This dataset contains 1 million hash keys, each with 5 fields + and each field has a data size of 1000 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml index b5e1a02c..b92871a4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hincrbyfloat.yml @@ -12,11 +12,14 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "1000" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 6g - dataset_name: 1Mkeys-hash-hincrbyfloat + dataset_name: 1Mkeys-hash-5-fields-1000B-size + dataset_description: This dataset contains 1 million hash keys, each with 5 fields + and each field has a data size of 1000 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml index 115ce13a..8bcdc717 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10.yml @@ -13,11 +13,14 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 + dataset_name: 1Mkeys-hash-5-fields-100B-size + dataset_description: This dataset contains 1 million hash keys, each with 5 fields + and each field has a data size of 100 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml index ad18e5c6..42e84652 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram + --pipeline 50' resources: requests: memory: 4g - dataset_name: 1Mkeys-list-lpop-rpop-with-100B-values + dataset_name: 1Mkeys-list-100B-size + dataset_description: This dataset contains 1 million list keys, each with a data + size of 100 bytes. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml index 9c11abe8..00ec6610 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram + --pipeline 50' resources: requests: memory: 2g - dataset_name: 1Mkeys-list-lpop-rpop-with-10B-values + dataset_name: 1Mkeys-list-10B-size + dataset_description: This dataset contains 1 million list keys, each with a data + size of 10 bytes. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml index 2ebf53e8..270a9260 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "1000" --command "LPUSH __key__ __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram + --pipeline 50' resources: requests: memory: 10g - dataset_name: 1Mkeys-list-lpop-rpop-with-1KiB-values + dataset_name: 1Mkeys-list-1KiB-size + dataset_description: This dataset contains 1 million list keys, each with a value + of data size 1 KiB. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml index 5eda13f5..be55f4c2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-list-rpoplpush-with-10B-values.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "10" --command "LPUSH __key__ __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram' + --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram + --pipeline 50' resources: requests: memory: 2g - dataset_name: 1Mkeys-list-rpoplpush-with-10B-values + dataset_name: 1Mkeys-list-10B-size + dataset_description: This dataset contains 1 million list keys, each with a data + size of 10 bytes. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml index c60a5c86..3da9c873 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix.yml @@ -6,11 +6,10 @@ dbconfig: configuration-parameters: save: '""' check: - keyspacelen: 1000000 + keyspacelen: 0 resources: requests: memory: 1g - dataset_name: 1Mkeys-load-string-with-10B-values-pipeline-100-nokeyprefix tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml index 0c94b14b..eda5bbc2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-append-1-100B-pipeline-10 + dataset_name: 1Mkeys-string-1B-100B-size + dataset_description: This dataset contains 1 million string keys, each initially + with a data size of 1 byte, and then appended with values ranging from 1 to 100 + bytes. tested-commands: - append redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml index 9f107586..5ff62221 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-append-1-100B.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "1" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-append-1-100B + dataset_name: 1Mkeys-string-1B-100B-size + dataset_description: This dataset contains 1 million string keys, each initially + with a data size of 1 byte, and then appended with values ranging from 1 to 100 + bytes. tested-commands: - append redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml index 4476346b..0a8baa25 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-decr.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: ' --command "SET __key__ 9223372036854775807" --command-key-pattern="P" - -n 5000 --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram' + -n 5000 --key-minimum=1 --key-maximum 1000000 -c 50 -t 4 --hide-histogram --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-decr + dataset_name: 1Mkeys-string-9223372036854775807B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 9223372036854775807 bytes. tested-commands: - decr redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml index 21366111..2a62cef2 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --key-maximum 1000000 --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-100B-pipeline-10 + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - get redis-topologies: @@ -27,7 +30,7 @@ clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --pipeline 10 --data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t - 4 --hide-histogram --test-time 180 + 4 --hide-histogram --test-time 180 --key-minimum 1 --key-maximum 1000000 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml index 105aec44..f647c50a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-100B.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --key-maximum 1000000 --pipeline + 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-100B + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - get redis-topologies: @@ -27,7 +30,7 @@ clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --data-size 100 --ratio 0:1 --key-pattern R:R -c 25 -t 4 --hide-histogram - --test-time 180 + --test-time 180 --key-minimum 1 --key-maximum 1000000 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml index caf9155c..4e791b14 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" - "1"' + "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B-pipeline-10 + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml index 2d6d98b7..7062a49f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100-nokeyprefix.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B-pipeline-100-nokeyprefix + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml index 785e4d92..f7215875 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-100.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" - "1"' + "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B-pipeline-100 + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml index 1d54f49e..891045bd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-50.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" - "1"' + "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B-pipeline-50 + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml index 89dd328f..2c68d4ce 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B-pipeline-500.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--key-maximum" "1000000" "-n" "allkeys" "--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" - "1"' + "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B-pipeline-500 + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml index b015ead0..8caa4d2c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-10B.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "10" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-10B + dataset_name: 1Mkeys-string-10B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 10 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml index 5b63bc23..835d1c8c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10.yml @@ -15,7 +15,9 @@ dbconfig: resources: requests: memory: 2g - dataset_name: 1Mkeys-string-get-1KiB-pipeline-10 + dataset_name: 1Mkeys-string-1KiB-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml index 9d9dd51e..311296a8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-1KiB.yml @@ -15,7 +15,9 @@ dbconfig: resources: requests: memory: 2g - dataset_name: 1Mkeys-string-get-1KiB + dataset_name: 1Mkeys-string-1KiB-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml index 94bfe57c..690f1196 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B-pipeline-10.yml @@ -11,11 +11,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-32B-pipeline-10 + dataset_name: 1Mkeys-string-32B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 32 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml index 4dd7aa8d..5f4f6614 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-get-32B.yml @@ -11,11 +11,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-get-32B + dataset_name: 1Mkeys-string-32B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 32 bytes. tested-commands: - get redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml index 842d81e6..b0559450 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incr-pipeline-10.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-incr-pipeline-10 tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml index a077b7e3..cd461a12 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby-pipeline-10.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-incrby-pipeline-10 tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml index 3c24822b..e7a9582b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrby.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-incrby tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml index 63e20e61..cb655ee6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-incrbyfloat-pipeline-10 tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml index 5edd67d4..a86cbed5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-incrbyfloat.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-incrbyfloat tested-groups: - string tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml index d28470ff..5daadace 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-int-encoding-strlen-pipeline-10.yml @@ -15,7 +15,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-int-encoding-strlen-pipeline-10 + dataset_name: 1Mkeys-string-int-encoded + dataset_description: This dataset contains 1 million string keys, each key is integer + encoded. tested-commands: - strlen redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml index aeb4da6f..0c7d5276 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mget-1KiB.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: --data-size 1000 --key-maximum 1000000 --key-prefix "" --command="SET __key__ __data__" --command-key-pattern P --key-minimum 1 --hide-histogram - -t 2 -c 100 + -t 2 -c 100 --pipeline 50 resources: requests: memory: 2g - dataset_name: 1Mkeys-string-mget-1KiB + dataset_name: 1Mkeys-string-1KiB-size-no-key-prefix + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. The keys are not prefixed, meaning they are 1,2,3,etc... tested-commands: - mget redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml index 33f620f4..38148574 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern - P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' + P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys + --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-expire-pipeline-10 + dataset_name: 1Mkeys-string-100B-size-with-expiration + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - setex - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml index 4fe61cc3..1eec1bc3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-expire.yml @@ -12,11 +12,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" --command "SET __key__ __data__ EX 10" --command-key-pattern - P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys' + P -c 50 -t 2 --hide-histogram --key-minimum 1 --key-maximum 1000000 -n allkeys + --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-expire + dataset_name: 1Mkeys-string-100B-size-with-expiration + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - setex - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml index c4d0940f..1f165b0f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B-pipeline-10 + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml index 00452d68..611331c5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-100B.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-100B + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml index 2a76b36f..b3bd8000 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10.yml @@ -10,13 +10,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + arguments: --data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern + P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000 resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-1KB-pipeline-10 + dataset_name: 1Mkeys-string-1KiB-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml index ce6909af..dd741a61 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB.yml @@ -3,7 +3,7 @@ name: memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-1KB description: Runs memtier_benchmark, for a keyspace of 1M keys with 50% SETs and 50% GETs (mixed) with a data size of 1000 Bytes. dbconfig: - dataset_name: 1Mkeys-string-mixed-50-50-set-get-1KB + dataset_name: 1Mkeys-string-1KiB-size configuration-parameters: save: '""' check: @@ -11,12 +11,13 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: '"--data-size" "1000" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + arguments: --data-size 1000 --pipeline 50 -n allkeys --ratio 1:0 --key-pattern + P:P -c 1 -t 4 --hide-histogram --key-minimum 1 --key-maximum 1000000 resources: requests: memory: 1g + dataset_description: This dataset contains 1 million string keys, each with a data + size of 1 KiB. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml index 64863bda..de756d85 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-32B-pipeline-10 + dataset_name: 1Mkeys-string-32B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 32 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml index ca18df12..70b9a6f7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-32B.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "32" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-32B + dataset_name: 1Mkeys-string-32B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 32 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml index bce9f125..87b11314 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10 + dataset_name: 1Mkeys-string-512B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 512 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml index 712e675a..f2ffd0a7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: '"--data-size" "512" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" - "allkeys"' + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-512B + dataset_name: 1Mkeys-string-512B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 512 bytes. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml index cdd87162..24e6362a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml @@ -17,7 +17,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns + dataset_name: 1Mkeys-string-240B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 240 bytes and a very short expiration time. tested-commands: - set - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml index 0c3c19bc..019772f6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" -n + allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-set-with-ex-100B-pipeline-10 + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml index a492cb8f..34b468bd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-setex-100B-pipeline-10 + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - setex redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml index 885fe18f..b43703e4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-setrange-100B-pipeline-10 + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - setrange redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml index f8c98af6..55153f3a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setrange-100B.yml @@ -11,11 +11,14 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50" - "-t" "2" "--hide-histogram" "--key-minimum" "1"' + "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" "-n" + "allkeys" --pipeline 50' resources: requests: memory: 1g - dataset_name: 1Mkeys-string-setrange-100B + dataset_name: 1Mkeys-string-100B-size + dataset_description: This dataset contains 1 million string keys, each with a data + size of 100 bytes. tested-commands: - setrange redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml index df3533ed..b86dbd35 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-100M-bits-bitmap-bitcount.yml @@ -15,12 +15,14 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 100000000 --key-minimum 1 -n 10000 --key-prefix "" --command-key-pattern R --distinct-client-seed - --pipeline 10 + --pipeline 50 resources: requests: cpus: '2' memory: 1g - dataset_name: 1key-100M-bits-bitmap + dataset_name: 1key-bitmap-100Mbits-15MB-size + dataset_description: This dataset contains 1 bitmap key with a size of 100M bits, + approximately 2M bits are set, and the total size is around 15MB. tested-commands: - bitcount tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml index c1bbb3d3..8e964cb7 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-1Billion-bits-bitmap-bitcount.yml @@ -15,12 +15,14 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 1000000000 --key-minimum 1 -n 100000 --key-prefix "" --command-key-pattern R --distinct-client-seed - --pipeline 10 + --pipeline 50 resources: requests: cpus: '2' memory: 1g - dataset_name: 1key-1Billion-bits-bitmap + dataset_name: 1key-bitmap-1Billion-bits-140MB-size + dataset_description: This dataset contains 1 bitmap key with a size of 1 Billion + bits, approximately 20M bits are set and the total size is around 140MB. tested-commands: - bitcount tested-groups: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml index 1c4e524c..05a3f9fc 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geopos.yml @@ -14,6 +14,8 @@ dbconfig: init_commands: - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' dataset_name: 1key-geo-2-elements + dataset_description: This dataset contains 1 GEO key with 2 elements, representing + locations in Sicily. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml index 73c076fe..e9114e9d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord.yml @@ -14,7 +14,9 @@ dbconfig: init_commands: - '"GEOADD" "Sicily" "13.361389" "38.115556" "Palermo" "15.087269" "37.502669" "Catania"' - '"GEOADD" "Sicily" "12.758489" "38.788135" "edge1" "17.241510" "38.788135" "edge2"' - dataset_name: 1key-geo-2-elements-geosearch-fromlonlat-withcoord + dataset_name: 1key-geo-4-elements + dataset_description: This dataset contains 1 GEO key with 4 elements, representing + locations in Sicily. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml index 960ee9a9..7af43f93 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml @@ -13,6 +13,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml index c13cdc5b..1b79bcbf 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geodist.yml @@ -13,6 +13,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml index 086adf41..fec9e6d8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml @@ -12,6 +12,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml index 60bafe1f..fe38ddde 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geohash.yml @@ -12,6 +12,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml index 4f69e8d8..a6b55aef 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml @@ -12,6 +12,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml index a86f2c95..7db6b9a8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geopos.yml @@ -12,6 +12,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml index 04e47de1..5bc7a4d6 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml @@ -13,6 +13,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml index ce25254a..57fe9544 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml @@ -13,6 +13,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml index 8f61c1c8..d7747dff 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml @@ -13,6 +13,7 @@ dbconfig: requests: memory: 6g dataset_name: 1key-geo-60M-elements + dataset_description: This dataset contains 1 GEO key with 60 million elements. tested-groups: - geo tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml index 48da81d3..85325ddd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall-pipeline-10.yml @@ -260,7 +260,9 @@ dbconfig: "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" "value"' - dataset_name: 1key-hash-1K-fields + dataset_name: 1key-hash-1-fields-32B-size + dataset_description: 1 key. containing redis hash data structures. with fields field(s) + each. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml index e9a7d261..8a775c13 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-1K-fields-hgetall.yml @@ -260,7 +260,9 @@ dbconfig: "value" "iamjlqlznh" "value" "mvmsikqfxu" "value" "kmqlwfbsex" "value" "pribqncfuf" "value" "zavrjnezrf" "value" "kmcwshsbye" "value" "uzaejrbwue" "value" "olezxlliej" "value" "hjjxyybxiv" "value"' - dataset_name: 1key-hash-1K-fields + dataset_name: 1key-hash-1-fields-32B-size + dataset_description: 1 key. containing redis hash data structures. with fields field(s) + each. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml index 7f91ff5f..e1d1591f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-100B-values-cursor-count-1000.yml @@ -260,11 +260,14 @@ dbconfig: __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram --pipeline + 50' resources: requests: memory: 2g - dataset_name: 1key-hash-hscan-1K-fields-100B-values + dataset_name: 1key-hash-1000-fields-100B-size + dataset_description: This dataset contains 1 hash key, with 1000 fields and each + field has a data size of 100 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml index d4c628ff..26671bcb 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values-cursor-count-100.yml @@ -260,11 +260,14 @@ dbconfig: __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram --pipeline + 50' resources: requests: memory: 2g - dataset_name: 1key-hash-hscan-1K-fields-10B-values + dataset_name: 1key-hash-1000fields-10B-size + dataset_description: This dataset contains 1 hash key, with 1000 fields and each + field has a data size of 10 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml index 396898ca..adecc939 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-1K-fields-10B-values.yml @@ -260,11 +260,14 @@ dbconfig: __data__ field:990 __data__ field:991 __data__ field:992 __data__ field:993 __data__ field:994 __data__ field:995 __data__ field:996 __data__ field:997 __data__ field:998 __data__ field:999 __data__ field:1000 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram --pipeline + 50' resources: requests: memory: 2g - dataset_name: 1key-hash-hscan-1K-fields-10B-values + dataset_name: 1key-hash-1K-fields-10B-size + dataset_description: This dataset contains 1 hash key, with 1000 fields and each + field has a data size of 10 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml index 7172dba7..06f9d6f9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-hash-hscan-50-fields-10B-values.yml @@ -24,11 +24,14 @@ dbconfig: __data__ field:39 __data__ field:40 __data__ field:41 __data__ field:42 __data__ field:43 __data__ field:44 __data__ field:45 __data__ field:46 __data__ field:47 __data__ field:48 __data__ field:49 __data__ field:50 __data__" --command-key-pattern="P" - --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram' + --key-minimum=1 --key-maximum 1 -n allkeys -c 1 -t 1 --hide-histogram --pipeline + 50' resources: requests: memory: 2g - dataset_name: 1key-hash-hscan-50-fields-10B-values + dataset_name: 1key-hash-50-fields-10B-size + dataset_description: This dataset contains 1 hash key, with 50 fields and each field + has a data size of 10 bytes. tested-groups: - hash tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml index aa853c3a..20517777 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10.yml @@ -14,6 +14,7 @@ dbconfig: - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' dataset_name: 1key-list-10-elements + dataset_description: This dataset contains 1 list key with 10 elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml index e7bedf23..e40f717c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10-elements-lrange-all-elements.yml @@ -14,6 +14,7 @@ dbconfig: - '"LPUSH" "list:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' dataset_name: 1key-list-10-elements + dataset_description: This dataset contains 1 list key with 10 elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml index 9153aa1e..f36d64c9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-7bit-uint-lrange-all-elements-pipeline-10.yml @@ -19,7 +19,9 @@ dbconfig: "59" "60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" "91" "92" "93" "94" "95" "96" "97" "98" "99"' - dataset_name: 1key-list-100-elements-int-7bit-uint + dataset_name: 1key-list-100-elements-7BIT_UINT + dataset_description: This dataset contains 1 list key with 100 integer elements, + each encoded as 7BIT_UINT. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml index 404bc7f1..4db61597 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-int-lrange-all-elements-pipeline-10.yml @@ -28,6 +28,8 @@ dbconfig: "4304240283865562043" "5534023222112865484" "6763806160360168925" "7993589098607472366" "9223372036854775807"' dataset_name: 1key-list-100-elements-int + dataset_description: This dataset contains 1 list key with 100 integer elements + across all 6 encoding types. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml index 90917b1e..9aeb82d3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-llen-pipeline-10.yml @@ -28,7 +28,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-list-100-elements-string + dataset_name: 1key-list-100-elements + dataset_description: This dataset contains 1 list key with 100 elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml index 5c7321d8..38f228ea 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10.yml @@ -28,7 +28,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-list-100-elements-string + dataset_name: 1key-list-100-elements + dataset_description: This dataset contains 1 list key with 100 elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml index af563b7b..ad270b59 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-100-elements-lrange-all-elements.yml @@ -28,7 +28,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-list-100-elements-string + dataset_name: 1key-list-100-elements + dataset_description: This dataset contains 1 list key with 100 elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml index 811f51fd..fb543c55 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-integer.yml @@ -13,12 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 - --pipeline 10 + --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-integer + dataset_description: This dataset contains 1 list key with 10,000 integer elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml index 3867a0f6..e87fa00e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string-pipeline-10.yml @@ -13,12 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 - -t 1 --pipeline 10 + -t 1 --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-string + dataset_description: This dataset contains 1 list key with 10,000 string elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml index c1275fa4..e116c308 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lindex-string.yml @@ -13,12 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 - -t 1 --pipeline 10 + -t 1 --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-string + dataset_description: This dataset contains 1 list key with 10,000 string elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml index 9addca3c..99aee1f8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer.yml @@ -15,12 +15,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 - --pipeline 10 + --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-integer + dataset_description: This dataset contains 1 list key with 10,000 integer elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml index 312706b8..adbc494d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-linsert-lrem-string.yml @@ -15,12 +15,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 - -t 1 --pipeline 10 + -t 1 --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-string + dataset_description: This dataset contains 1 list key with 10,000 string elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml index 78219a87..6da047ac 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-integer.yml @@ -13,12 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH intlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "" --command-key-pattern S -c 1 -t 1 - --pipeline 10 + --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-integer + dataset_description: This dataset contains 1 list key with 10,000 integer elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml index 4141551d..8a1e4f5f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-10K-elements-lpos-string.yml @@ -13,12 +13,13 @@ dbconfig: tool: memtier_benchmark arguments: --hide-histogram --command "RPUSH strlist __key__" --key-maximum 10000 --key-minimum 1 -n allkeys --key-prefix "hello" --command-key-pattern S -c 1 - -t 1 --pipeline 10 + -t 1 --pipeline 50 resources: requests: cpus: '2' memory: 1g dataset_name: 1key-list-10K-elements-string + dataset_description: This dataset contains 1 list key with 10,000 string elements. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml index c8b7e46b..8197a1a8 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10.yml @@ -178,7 +178,8 @@ dbconfig: "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' - dataset_name: 1key-list-1K-elements + dataset_name: 1key-list-32B-size + dataset_description: 1 key. containing redis list data structures. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml index 019bcd4c..fd50d014 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-1K-elements-lrange-all-elements.yml @@ -178,7 +178,8 @@ dbconfig: "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' - dataset_name: 1key-list-1K-elements + dataset_name: 1key-list-32B-size + dataset_description: 1 key. containing redis list data structures. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml index b4aecc4c..360d5cec 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs.yml @@ -235,7 +235,8 @@ dbconfig: "544700" "960117" "979088" "821091" "745289" "870898" "772669" "156821" "339467" "462864" "663633" "704102" "446816" "557140" "50699" "767901" "52426" "203649" "70161"' - dataset_name: 1key-list-2K-elements-quicklist + dataset_name: 1key-list-32B-size + dataset_description: 1 key. containing redis list data structures. tested-groups: - list tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml index 702c8fda..0db26fac 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers-pipeline-10.yml @@ -13,7 +13,8 @@ dbconfig: init_commands: - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - dataset_name: 1key-set-10-elements-string + dataset_name: 1key-set-10-elements + dataset_description: This dataset contains 1 set key with 10 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml index 00720a1f..82942a7c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smembers.yml @@ -13,7 +13,8 @@ dbconfig: init_commands: - '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - dataset_name: 1key-set-10-elements-string + dataset_name: 1key-set-10-elements + dataset_description: This dataset contains 1 set key with 10 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml index b7f1d84e..1cf176ac 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10-elements-smismember.yml @@ -13,7 +13,8 @@ dbconfig: memory: 1g init_commands: '"SADD" "set:10" "lysbgqqfqw" "mtccjerdon" "jekkafodvk" "nmgxcctxpn" "vyqqkuszzh" "pytrnqdhvs" "oguwnmniig" "gekntrykfh" "nhfnbxqgol" "cgoeihlnei"' - dataset_name: 1key-set-10-elements-string + dataset_name: 1key-set-10-elements + dataset_description: This dataset contains 1 set key with 10 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml index ececc1ad..5aeac733 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-is-a-member.yml @@ -29,7 +29,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-set-100-elements-string + dataset_name: 1key-set-100-elements + dataset_description: This dataset contains 1 set key with 100 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml index ea06b89c..4a79ec4e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sismember-not-a-member.yml @@ -29,7 +29,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-set-100-elements-string + dataset_name: 1key-set-100-elements + dataset_description: This dataset contains 1 set key with 100 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml index be65ae5e..57800c50 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smembers.yml @@ -27,7 +27,8 @@ dbconfig: "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-set-100-elements-string + dataset_name: 1key-set-100-elements + dataset_description: This dataset contains 1 set key with 100 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml index 2f6614bd..755aec0e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-smismember.yml @@ -29,7 +29,8 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-set-100-elements-string + dataset_name: 1key-set-100-elements + dataset_description: This dataset contains 1 set key with 100 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml index 1003921b..b85737c3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-100-elements-sscan.yml @@ -27,7 +27,8 @@ dbconfig: "dapacykoah" "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 1key-set-100-elements-string + dataset_name: 1key-set-100-elements + dataset_description: This dataset contains 1 set key with 100 elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml index 74c9573a..eb5d63a1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance.yml @@ -15,8 +15,9 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum - 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 - dataset_name: 1key-set-10M-elements-integer + 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 --pipeline 50 + dataset_name: 1key-set-10M-elements + dataset_description: This dataset contains 1 set key with 10 million elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml index 4ada97a0..859f1739 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-10M-elements-srem-50pct-chance.yml @@ -15,8 +15,9 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command="SADD set:10M:elements __key__" --command-key-pattern=P --key-maximum - 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 - dataset_name: 1key-set-10M-elements-integer + 10000000 --key-prefix "" -n 10000000 --hide-histogram -t 1 -c 1 --pipeline 50 + dataset_name: 1key-set-10M-elements + dataset_description: This dataset contains 1 set key with 10 million elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml index 4641519d..2c0a7206 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-smembers.yml @@ -177,7 +177,8 @@ dbconfig: "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' - dataset_name: 1key-set-1K-elements-smembers + dataset_name: 1key-set-32B-size + dataset_description: 1 key. containing redis set data structures. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml index 81a68c08..3a41a325 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan-cursor-count-100.yml @@ -177,7 +177,8 @@ dbconfig: "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' - dataset_name: 1key-set-1K-elements-string + dataset_name: 1key-set-32B-size + dataset_description: 1 key. containing redis set data structures. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml index 656b6e32..825c9414 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1K-elements-sscan.yml @@ -177,7 +177,8 @@ dbconfig: "xepfvvcovk" "ezgxjiwwig" "izizuzzjuv" "mallnshtok" "tctrsxgnrc" "exhjfssojj" "yilvzcevlj" "nepxmyiuhr" "dqqfcdugde" "iamjlqlznh" "mvmsikqfxu" "kmqlwfbsex" "pribqncfuf" "zavrjnezrf" "kmcwshsbye" "uzaejrbwue" "olezxlliej" "hjjxyybxiv"' - dataset_name: 1key-set-1K-elements-string + dataset_name: 1key-set-32B-size + dataset_description: 1 key. containing redis set data structures. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml index 47715cb9..4e678be1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance.yml @@ -14,8 +14,9 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command="SADD set:1M:elements __key__" --command-key-pattern=P --key-maximum - 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 - dataset_name: 1key-set-1M-elements-integer + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 --pipeline 50 + dataset_name: 1key-set-1M-elements + dataset_description: This dataset contains 1 set key with 1 million elements. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml index b6821f70..b7aec64a 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-set-200K-elements-sadd-constant.yml @@ -16,7 +16,9 @@ dbconfig: tool: memtier_benchmark arguments: --command="SADD myset __key__" --command-key-pattern=P --pipeline 100 --key-maximum 200000 --key-prefix "" -n 200000 --hide-histogram -t 1 -c 1 - dataset_name: 1key-set-200K-elements-integer + dataset_name: 1key-set-200K-elements-constant + dataset_description: This dataset contains 1 set key with 200,000 elements, with + the set size remaining constant as we are only updating its members but not increasing. tested-groups: - set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml index 92afcda7..97afb721 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml @@ -10,12 +10,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum - 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD lb __key__ __key__" --command-key-pattern=P --key-maximum + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-1M-elements-integer + dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: @@ -28,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R + arguments: --command="ZINCRBY lb 1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml index 243e9fd9..dbefe70b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-100K-elements-pipeline-1.yml @@ -15,7 +15,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1key-100K-elements-integer + dataset_name: 1key-zset-100K-elements-integer + dataset_description: This dataset contains 1 sorted set key with 100,000 elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml index dc985d7a..da3e9e42 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-10M-elements-pipeline-1.yml @@ -16,7 +16,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1key-10M-elements-integer + dataset_name: 1key-zset-10M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 10 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml index 0894a3fb..250540b3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml @@ -10,12 +10,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --pipeline 50 --command="ZADD key1 __key__ __key__" --command-key-pattern=P + arguments: --pipeline 50 --command="ZADD lb __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 100000 --hide-histogram -t 10 -c 1 resources: requests: memory: 1g - dataset_name: 1key-1M-elements-integer + dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: @@ -28,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R + arguments: --command="ZRANK lb __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml index 437052b3..1d93db5b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml @@ -18,11 +18,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum - 5000000 --key-prefix "" -n 5000000 --hide-histogram -t 1 -c 1 + 5000000 --key-prefix "" -n 5000000 --hide-histogram -t 1 -c 1 --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-5M-elements-integer + dataset_name: 1key-zset-5M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 5 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml index 7a68dfb0..f856ae32 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c - 1 + 1 --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-256K-elements + dataset_name: 1key-zset-256K-elements-1KiB-size + dataset_description: This dataset contains 1 sorted set key with 256K elements, + each with a data size of 1KiB. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml index c269974c..2bc07311 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: --command="ZADD key1 __key__ __data__" --command-key-pattern=P --key-maximum 262144 --key-prefix "" -R --data-size=1024 -n 262144 --hide-histogram -t 1 -c - 1 + 1 --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-256K-elements + dataset_name: 1key-zset-256K-elements-integer-1KiB-size + dataset_description: This dataset contains 1 sorted set key with 256 thousand elements, + each with an integer score and a data size of 1 KiB. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml index 30e17a83..a75479af 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml @@ -10,12 +10,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum - 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 + arguments: --command="ZADD lb __key__ __key__" --command-key-pattern=P --key-maximum + 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-1M-elements-integer + dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: @@ -28,7 +30,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R + arguments: --command="ZREVRANK lb __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml index 3e8fb21c..8ccc78c4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores.yml @@ -16,7 +16,9 @@ dbconfig: "jekkafodvk" "10000003" "nmgxcctxpn" "10000004" "vyqqkuszzh" "10000005" "pytrnqdhvs" "10000006" "oguwnmniig" "10000007" "gekntrykfh" "10000008" "nhfnbxqgol" "10000009" "cgoeihlnei"' - dataset_name: 1key-zset-10-elements-zrange-all-elements-long-scores + dataset_name: 1key-zset-10-elements-long + dataset_description: This dataset contains 1 sorted set key with 10 elements, each + with a long score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml index 78de0b35..547d99aa 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-10-elements-zrange-all-elements.yml @@ -15,7 +15,9 @@ dbconfig: - '"ZADD" "zset:10" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei"' - dataset_name: 1key-zset-10-elements-zrange-all-elements + dataset_name: 1key-zset-10-elements-float + dataset_description: This dataset contains 1 sorted set key with 10 elements, each + with a floating point score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml index 93d8e177..7a16d48b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrange-all-elements.yml @@ -41,7 +41,9 @@ dbconfig: "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' - dataset_name: 1key-zset-100-elements-zrange-all-elements + dataset_name: 1key-zset-100-elements-float + dataset_description: This dataset contains 1 sorted set key with 100 elements, each + with a floating point score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml index cb32c294..ad2d62fa 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores.yml @@ -41,7 +41,9 @@ dbconfig: "pquewclxuy" "10000090" "vpmpffdoqz" "10000091" "eouliovvra" "10000092" "vxcbagyymm" "10000093" "jekkafodvk" "10000094" "ypekeuutef" "10000095" "dlbqcynhrn" "10000096" "erxulvebrj" "10000097" "qwxrsgafzy" "10000098" "dlsjwmqzhx" "10000099" "exvhmqxvvp"' - dataset_name: 1key-zset-100-elements-zrangebyscore-all-elements-long-scores + dataset_name: 1key-zset-100-elements-long + dataset_description: This dataset contains 1 sorted set key with 100 elements, each + with a long score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml index d5884e20..d7ffd988 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements.yml @@ -41,7 +41,9 @@ dbconfig: "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' - dataset_name: 1key-zset-100-elements-zrangebyscore-all-elements + dataset_name: 1key-zset-100-elements-float + dataset_description: This dataset contains 1 sorted set key with 100 elements, each + with a floating point score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml index b9406a54..ca67118e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-100-elements-zscan.yml @@ -41,7 +41,9 @@ dbconfig: "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"' - dataset_name: 1key-zset-100-elements-zscan + dataset_name: 1key-zset-100-elements-float + dataset_description: This dataset contains 1 sorted set key with 100 elements, each + with a floating point score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml index ea0208f7..a232cc5b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml @@ -298,7 +298,8 @@ dbconfig: "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' - dataset_name: 1key-zset-1K-elements + dataset_name: 1key-sorted-set-32B-size + dataset_description: 1 key. containing redis set data structures. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml index 9dc5145b..45ac240b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zscan.yml @@ -298,7 +298,8 @@ dbconfig: "uncqdpbhwb" "0.231924" "bdtbaxnuko" "0.138864" "fsthobmdxk" "0.309461" "auwfujaoya" "0.288084" "hertbwuzyw" "0.452947" "azpwrzovza" "0.987974" "yilvzcevlj" "0.374557" "kpfqxroqbs" "0.224445" "dlomhvkoxg" "0.205225" "vjhpmffzxc" "0.863114" "klwqsggtob"' - dataset_name: 1key-zset-1K-elements + dataset_name: 1key-sorted-set-32B-size + dataset_description: 1 key. containing redis set data structures. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml index e6d1c6b7..65bd97ed 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10.yml @@ -11,11 +11,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern - P --hide-histogram -t 4 -c 100 + P --hide-histogram -t 4 -c 100 --pipeline 50 resources: requests: memory: 1g dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml index f162af24..9145eb31 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zremrangebyscore-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern - P --hide-histogram -t 4 -c 100 + P --hide-histogram -t 4 -c 100 --pipeline 50 resources: requests: memory: 1g dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml index 052ba833..9881b3f5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements.yml @@ -12,11 +12,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern - P --hide-histogram -t 4 -c 100 + P --hide-histogram -t 4 -c 100 --pipeline 50 resources: requests: memory: 1g dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml index 43ec5596..3195d7a3 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zrevrange-withscores-5-elements-pipeline-10.yml @@ -12,11 +12,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern - P --hide-histogram -t 4 -c 100 + P --hide-histogram -t 4 -c 100 --pipeline 50 resources: requests: memory: 1g dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml index f2fde793..9f8a21ae 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10.yml @@ -11,11 +11,13 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --key-maximum 1000000 --key-prefix "" --command="ZADD lb __key__ __key__" --command-key-pattern - P --hide-histogram -t 4 -c 100 + P --hide-histogram -t 4 -c 100 --pipeline 50 resources: requests: memory: 1g dataset_name: 1key-zset-1M-elements-integer + dataset_description: This dataset contains 1 sorted set key with 1 million elements, + each with an integer score. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml index cc55a164..7c0a2d76 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-1K-elements.yml @@ -12,11 +12,13 @@ dbconfig: tool: memtier_benchmark arguments: -n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" - "--key-minimum" "1" "--key-maximum" "600001" + "--key-minimum" "1" "--key-maximum" "600001" --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-zset-600K-elements-zrangestore-1K-elements + dataset_name: 1key-zset-600K-elements-integer-10B-size + dataset_description: This dataset contains 1 sorted set key with 600,000 elements, + each with an integer score and a data size of 10 bytes. tested-commands: - zrangestore redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml index 9734807c..90553659 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-600K-elements-zrangestore-300K-elements.yml @@ -14,11 +14,13 @@ dbconfig: tool: memtier_benchmark arguments: -n allkeys "--data-size" "10" --key-prefix "" "--command" "ZADD zset __key__ __key__" "--command-key-pattern" "P" "-c" "1" "-t" "1" "--hide-histogram" - "--key-minimum" "1" "--key-maximum" "600001" + "--key-minimum" "1" "--key-maximum" "600001" --pipeline 50 resources: requests: memory: 1g - dataset_name: 1key-zset-600K-elements-zrangestore-300K-elements + dataset_name: 1key-zset-600K-elements-float + dataset_description: This dataset contains 1 sorted set key with 600,000 elements, + each with a floating-point score. tested-commands: - zrangestore redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml index 0dc74072..ee01d942 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-listpack-zrank-100-elements-pipeline-1.yml @@ -24,7 +24,9 @@ dbconfig: resources: requests: memory: 1g - dataset_name: 1key-zset-listpack-zrank-100-elements-pipeline-1 + dataset_name: 1key-zset-100-elements-listpack + dataset_description: This dataset contains 1 sorted set key with 100 elements, each + with a listpack encoding. tested-groups: - sorted-set tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml index 21cd8db7..486744ad 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sdiff.yml @@ -32,7 +32,9 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 2keys-set-10-100-elements-sdiff + dataset_name: 2keys-set-10-100-elements + dataset_description: This dataset contains 2 set keys, one with 10 elements and + the other with 100 elements. The smaller set is a subset of the larger one. tested-commands: - smembers - sdiff diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml index 785f3671..81cfd73c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sinter.yml @@ -32,7 +32,9 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 2keys-set-10-100-elements-sinter + dataset_name: 2keys-set-10-100-elements + dataset_description: This dataset contains 2 set keys, one with 10 elements and + the other with 100 elements. The smaller set is a subset of the larger one. tested-commands: - smembers - sinter diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml index 9f50470a..5bc1832e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-set-10-100-elements-sunion.yml @@ -32,7 +32,9 @@ dbconfig: "wvcnqbvlnf" "perfwnpvkl" "ulbrotlhze" "fhuvzpxjbc" "holjcdpijr" "onzjrteqmu" "pquewclxuy" "vpmpffdoqz" "eouliovvra" "vxcbagyymm" "jekkafodvk" "ypekeuutef" "dlbqcynhrn" "erxulvebrj" "qwxrsgafzy" "dlsjwmqzhx" "exvhmqxvvp"' - dataset_name: 2keys-set-10-100-elements-sunion + dataset_name: 2keys-set-10-100-elements + dataset_description: This dataset contains 2 set keys, one with 10 elements and + the other with 100 elements. The smaller set is a subset of the larger one. tested-commands: - smembers - sunion diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml index c7564e53..de9be868 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10.yml @@ -22,7 +22,8 @@ dbconfig: - xadd key-2 * field value - xadd key-2 * field value - xadd key-2 * field value - dataset_name: 2keys-stream-5-entries-xread-all-entries-pipeline-10 + dataset_name: 2keys-stream-5-entries + dataset_description: This dataset contains 2 stream keys, each with 5 entries. tested-commands: - xread redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml index 044b30aa..215b764d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-stream-5-entries-xread-all-entries.yml @@ -22,7 +22,8 @@ dbconfig: - xadd key-2 * field value - xadd key-2 * field value - xadd key-2 * field value - dataset_name: 2keys-stream-5-entries-xread-all-entries + dataset_name: 2keys-stream-5-entries + dataset_description: This dataset contains 2 stream keys, each with 5 entries. tested-commands: - xread redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml index 0e659cf6..33c15d43 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion.yml @@ -410,7 +410,8 @@ dbconfig: "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' - dataset_name: 2keys-zset-300-elements-skiplist-encoded-zunion + dataset_name: 2keys-sorted-set-32B-size + dataset_description: 2 keys. containing redis set data structures. tested-commands: - zunion redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml index 821d1518..14da1556 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore.yml @@ -410,7 +410,8 @@ dbconfig: "ele:296:tyYcCWTtaQAFidhATOrNnrZAynrppZdOVborlhuWuR" "0.6857753861540998" "ele:297:Q" "0.2846544060829831" "ele:298:Zq" "0.3958936266598334" "ele:299:KhIAswbBjpRQnbKRBRLdWdCDt" "0.6572602342327124" "ele:300:oTBAmFvCABLYQTZWxYnPAUqUmpeOuGMHIwSQiAIxUu"' - dataset_name: 2keys-zset-300-elements-skiplist-encoded-zunionstore + dataset_name: 2keys-sorted-set-32B-size + dataset_description: 2 keys. containing redis set data structures. tested-commands: - zunionstore redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml index 40489071..20f21cd4 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-400_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-get-with-1KiB-values-400_conns + dataset_name: 3Mkeys-string-1KiB-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 1 KiB. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml index ce82d85b..4232fbd9 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-40_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-get-with-1KiB-values-40_conns + dataset_name: 3Mkeys-string-1KiB-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 1 KiB. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml index 8aaf923e..307e6752 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns + dataset_name: 3Mkeys-string-1KiB-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 1 KiB. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml index 45c82950..d31b6b3e 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns + dataset_name: 3Mkeys-string-1KiB-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 1 KiB. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml index a329d527..0edb8c4c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 1000 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns + dataset_name: 3Mkeys-string-1KiB-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 1 KiB. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml index c14f1eaf..91732c51 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-400_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-400_conns + dataset_name: 3Mkeys-string-512B-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 512 bytes. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml index d0c76745..5d214d67 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns + dataset_name: 3Mkeys-string-512B-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 512 bytes. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml index a19e8e57..29f80894 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns + dataset_name: 3Mkeys-string-512B-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 512 bytes. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml index 40dc5072..bee29a27 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns.yml @@ -11,12 +11,14 @@ dbconfig: preload_tool: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 10 --key-maximum + arguments: --data-size 512 --ratio 1:0 -n allkeys --pipeline 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 4 -c 10 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns + dataset_name: 3Mkeys-string-512B-size + dataset_description: This dataset contains 3 million string keys, each with a data + size of 512 bytes. tested-commands: - set redis-topologies: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml index 992921f7..6063c62f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns.yml @@ -10,12 +10,11 @@ dbconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark arguments: --data-size 512 --command "SET __key__ __data__ EX 5" -n allkeys --pipeline - 10 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram + 50 --key-maximum 3000000 --key-pattern P:P --key-minimum 1 --hide-histogram -t 1 -c 1 resources: requests: memory: 3g - dataset_name: 3Mkeys-string-mixed-50-50-with-512B-values-with-expiration-pipeline-10-400_conns tested-commands: - setex - get diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml index acc7aaf0..9a7a8277 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-connection-ping-pipeline-10.yml @@ -7,7 +7,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: nokeys-connection-ping-pipeline-10 tested-groups: - connection tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml index e11a3160..4808e029 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 2g - dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-100-subscribers tested-groups: - pubsub tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml index d193875f..f11c18d1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 2g - dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-1000-subscribers tested-groups: - pubsub tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml index 823f1fb1..5a7e830b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 2g - dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-5000-subscribers tested-groups: - pubsub tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml index f8f868a3..784e667f 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 2g - dataset_name: nokeys-pubsub-mixed-100-channels-128B-100-publishers-50K-subscribers-5k-conns tested-groups: - pubsub tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml index ec0f33ad..ac9e8c14 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publish-1K-channels-10B-no-subscribers.yml @@ -8,7 +8,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: nokeys-pubsub-publish-1K-channels-10B-no-subscribers tested-groups: - pubsub tested-commands: diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml index d99a60ba..4467acf5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml @@ -7,7 +7,6 @@ dbconfig: resources: requests: memory: 1g - dataset_name: nokeys-server-time-pipeline-10 tested-groups: - server tested-commands: From f6c05d93e2dee24bc391d593f6466a8ed44b3895 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 5 Aug 2025 19:07:32 +0100 Subject: [PATCH 07/16] Added memtier_benchmark-playbook-session-storage --- pyproject.toml | 2 +- .../__common__/runner.py | 245 +++++++++++++++++- .../__runner__/runner.py | 14 +- ...ier_benchmark-playbook-session-storage.yml | 200 ++++++++++++++ 4 files changed, 446 insertions(+), 15 deletions(-) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml diff --git a/pyproject.toml b/pyproject.toml index cb4c1e16..acdb9660 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.298" +version = "0.1.302" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__common__/runner.py b/redis_benchmarks_specification/__common__/runner.py index 230f9834..81a7672f 100644 --- a/redis_benchmarks_specification/__common__/runner.py +++ b/redis_benchmarks_specification/__common__/runner.py @@ -3,23 +3,26 @@ import os import pathlib import re - +import datetime as dt import redis -from redisbench_admin.run.metrics import collect_redis_metrics -from redisbench_admin.run_remote.run_remote import export_redis_metrics from redis_benchmarks_specification.__common__.timeseries import ( timeseries_test_sucess_flow, + push_data_to_redistimeseries, + get_project_ts_tags, ) def execute_init_commands(benchmark_config, r, dbconfig_keyname="dbconfig"): cmds = None + lua_scripts = None res = 0 if dbconfig_keyname in benchmark_config: for k, v in benchmark_config[dbconfig_keyname].items(): if "init_commands" in k: cmds = v + elif "init_lua" in k: + lua_scripts = v if type(cmds) == str: cmds = [cmds] @@ -37,7 +40,7 @@ def execute_init_commands(benchmark_config, r, dbconfig_keyname="dbconfig"): quoting=csv.QUOTE_ALL, skipinitialspace=True, ): - if lines[0] != " " and len(lines[0]) > 0: + if len(lines) > 0 and lines[0] != " " and len(lines[0]) > 0: cols.append(lines[0]) cmd = cols is_array = True @@ -57,6 +60,21 @@ def execute_init_commands(benchmark_config, r, dbconfig_keyname="dbconfig"): ) ) + # Process init_lua scripts + if lua_scripts is not None: + if type(lua_scripts) == str: + lua_scripts = [lua_scripts] + + for lua_script in lua_scripts: + try: + logging.info("Executing Lua script (length: {} chars)".format(len(lua_script))) + # Execute the Lua script using EVAL command with 0 keys + stdout = r.execute_command("EVAL", lua_script, 0) + logging.info("Lua script result: {}".format(stdout)) + res = res + 1 + except Exception as e: + logging.error("Lua script execution failed: {}".format(e)) + return res @@ -119,6 +137,210 @@ def extract_testsuites(args): return testsuite_spec_files + +def commandstats_latencystats_process_name( + metric_name, prefix, setup_name, variant_labels_dict +): + if prefix in metric_name: + command_and_metric_and_shard = metric_name[len(prefix) :] + command = ( + command_and_metric_and_shard[0] + + command_and_metric_and_shard[1:].split("_", 1)[0] + ) + metric_and_shard = command_and_metric_and_shard[1:].split("_", 1)[1] + metric = metric_and_shard + shard = "1" + if "_shard_" in metric_and_shard: + metric = metric_and_shard.split("_shard_")[0] + shard = metric_and_shard.split("_shard_")[1] + variant_labels_dict["metric"] = metric + variant_labels_dict["command"] = command + variant_labels_dict["command_and_metric"] = "{} - {}".format(command, metric) + variant_labels_dict["command_and_metric_and_setup"] = "{} - {} - {}".format( + command, metric, setup_name + ) + variant_labels_dict["command_and_setup"] = "{} - {}".format(command, setup_name) + variant_labels_dict["shard"] = shard + variant_labels_dict["metric_and_shard"] = metric_and_shard + + version = None + branch = None + if "version" in variant_labels_dict: + version = variant_labels_dict["version"] + if "branch" in variant_labels_dict: + branch = variant_labels_dict["branch"] + + if version is not None: + variant_labels_dict["command_and_metric_and_version"] = ( + "{} - {} - {}".format(command, metric, version) + ) + variant_labels_dict["command_and_metric_and_setup_and_version"] = ( + "{} - {} - {} - {}".format(command, metric, setup_name, version) + ) + + if branch is not None: + variant_labels_dict["command_and_metric_and_branch"] = ( + "{} - {} - {}".format(command, metric, branch) + ) + variant_labels_dict["command_and_metric_and_setup_and_branch"] = ( + "{} - {} - {} - {}".format(command, metric, setup_name, branch) + ) + + +def collect_redis_metrics( + redis_conns, + sections=["memory", "cpu", "commandstats", "latencystats"], + section_filter=None, +): + start_time = dt.datetime.utcnow() + start_time_ms = int((start_time - dt.datetime(1970, 1, 1)).total_seconds() * 1000) + res = [] + overall = {} + multi_shard = False + if len(redis_conns) > 1: + multi_shard = True + for conn_n, conn in enumerate(redis_conns): + conn_res = {} + for section in sections: + info = conn.info(section) + conn_res[section] = info + if section not in overall: + overall[section] = {} + for k, v in info.items(): + collect = True + if section_filter is not None: + if section in section_filter: + if k not in section_filter[section]: + collect = False + if collect and type(v) is float or type(v) is int: + if k not in overall[section]: + overall[section][k] = 0 + overall[section][k] += v + if collect and type(v) is dict: + for inner_k, inner_v in v.items(): + if type(inner_v) is float or type(inner_v) is int: + final_str_k = "{}_{}".format(k, inner_k) + if multi_shard: + final_str_k += "_shard_{}".format(conn_n + 1) + if final_str_k not in overall[section]: + overall[section][final_str_k] = inner_v + + res.append(conn_res) + + kv_overall = {} + for sec, kv_detail in overall.items(): + for k, metric_value in kv_detail.items(): + metric_name = "{}_{}".format(sec, k) + kv_overall[metric_name] = metric_value + + return start_time_ms, res, kv_overall + +def export_redis_metrics( + artifact_version, + end_time_ms, + overall_end_time_metrics, + rts, + setup_name, + setup_type, + test_name, + tf_github_branch, + tf_github_org, + tf_github_repo, + tf_triggering_env, + metadata_dict=None, + expire_ms=0, + git_hash=None, + running_platform=None, +): + datapoint_errors = 0 + datapoint_inserts = 0 + sprefix = ( + "ci.benchmarks.redis/" + + "{triggering_env}/{github_org}/{github_repo}".format( + triggering_env=tf_triggering_env, + github_org=tf_github_org, + github_repo=tf_github_repo, + ) + ) + logging.info( + "Adding a total of {} server side metrics collected at the end of benchmark".format( + len(list(overall_end_time_metrics.items())) + ) + ) + timeseries_dict = {} + by_variants = {} + if tf_github_branch is not None and tf_github_branch != "": + by_variants["by.branch/{}".format(tf_github_branch)] = { + "branch": tf_github_branch + } + if git_hash is not None and git_hash != "": + by_variants["by.hash/{}".format(git_hash)] = { + "hash": git_hash + } + if artifact_version is not None and artifact_version != "": + by_variants["by.version/{}".format(artifact_version)] = { + "version": artifact_version + } + for ( + by_variant, + variant_labels_dict, + ) in by_variants.items(): + for ( + metric_name, + metric_value, + ) in overall_end_time_metrics.items(): + tsname_metric = "{}/{}/{}/benchmark_end/{}/{}".format( + sprefix, + test_name, + by_variant, + setup_name, + metric_name, + ) + + logging.debug( + "Adding a redis server side metric collected at the end of benchmark." + + " metric_name={} metric_value={} time-series name: {}".format( + metric_name, + metric_value, + tsname_metric, + ) + ) + variant_labels_dict["metric"] = metric_name + commandstats_latencystats_process_name( + metric_name, "commandstats_cmdstat_", setup_name, variant_labels_dict + ) + commandstats_latencystats_process_name( + metric_name, + "latencystats_latency_percentiles_usec_", + setup_name, + variant_labels_dict, + ) + + variant_labels_dict["test_name"] = test_name + if metadata_dict is not None: + variant_labels_dict.update(metadata_dict) + + timeseries_dict[tsname_metric] = { + "labels": get_project_ts_tags( + tf_github_org, + tf_github_repo, + setup_name, + setup_type, + tf_triggering_env, + variant_labels_dict, + None, + running_platform, + ), + "data": {end_time_ms: metric_value}, + } + i_errors, i_inserts = push_data_to_redistimeseries(rts, timeseries_dict, expire_ms) + datapoint_errors = datapoint_errors + i_errors + datapoint_inserts = datapoint_inserts + i_inserts + return datapoint_errors, datapoint_inserts + + + + def reset_commandstats(redis_conns): for pos, redis_conn in enumerate(redis_conns): logging.info("Resetting commmandstats for shard {}".format(pos)) @@ -248,13 +470,16 @@ def exporter_datasink_common( deployment_type_and_name = f"{setup_type}_AND_{setup_name}" deployment_type_and_name_and_version = f"{setup_type}_AND_{setup_name}_AND_{git_version}" - # Add to deployment-specific set - deployment_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/{deployment_type_and_name_and_version}:set" - datasink_conn.sadd(deployment_set_key, test_name) + # Add to deployment-specific set (only if datasink connection is available) + if datasink_conn is not None: + deployment_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/{deployment_type_and_name_and_version}:set" + datasink_conn.sadd(deployment_set_key, test_name) - # Add to testcases set - testcases_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/testcases:set" - datasink_conn.sadd(testcases_set_key, test_name) + # Add to testcases set + testcases_set_key = f"ci.benchmarks.redis/{tf_triggering_env}/testcases:set" + datasink_conn.sadd(testcases_set_key, test_name) + else: + logging.debug("Datasink connection not available, skipping set operations") # Add metadata fields to timeseries metadata metadata["deployment_type_AND_deployment_name"] = deployment_type_and_name diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index e05b0dfb..35dce248 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -28,7 +28,10 @@ prepare_benchmark_parameters, dbconfig_keyspacelen_check, ) -from redisbench_admin.run_remote.run_remote import export_redis_metrics + +from redis_benchmarks_specification.__common__.runner import ( + export_redis_metrics, +) from redisbench_admin.run.metrics import extract_results_table from redisbench_admin.run.run import calculate_client_tool_duration_and_check @@ -56,6 +59,7 @@ exporter_datasink_common, reset_commandstats, execute_init_commands, + export_redis_metrics, ) from redis_benchmarks_specification.__common__.spec import ( extract_client_container_image, @@ -1935,8 +1939,10 @@ def delete_temporary_files( tf_github_org, tf_github_repo, tf_triggering_env, - {"metric-type": "memory-stats"}, + metadata, expire_redis_metrics_ms, + git_hash, + running_platform, ) exporter_datasink_common( @@ -1962,8 +1968,8 @@ def delete_temporary_files( topology_spec_name, default_metrics, git_hash, - collect_commandstats=False, - collect_memory_metrics=True, + False, + True, ) # Send MEMORY PURGE after memory comparison (if FLUSHALL at test end is not enabled) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml new file mode 100644 index 00000000..676e69e8 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml @@ -0,0 +1,200 @@ +version: 0.4 +name: memtier_benchmark-playbook-session-storage +description: | + Runs memtier_benchmark to simulate a session-based SaaS application. + The workload mimics user session CRUD, session tracking, organization-level analytics, + and rate limiting. It includes realistic key sizes and command mixes representative + of production traffic (e.g., 400–600B session hashes, ZSETs for analytics, and SETs for tracking). + + Rate limiting is modeled using Redis counters with expiration and readback: each user has a + dedicated rate-limit key in the form of `ratelimit:user-:/api/resource`, which is: + - incremented (`INCR`) to track API usage, + - assigned a TTL (`EXPIRE`) to define the 60-second rate window, + - and read (`GET`) to simulate application-side decision-making (e.g., to check if a user is over quota). + This models realistic per-user rate-limiting behavior for a single endpoint. + + The workload emphasizes read-heavy patterns to reflect common SaaS access behavior. The overall + **read:write ratio is approximately 85:15**, with read operations covering session access, user-session + lookups, org analytics, and rate limit enforcement, while writes handle session updates, activity tracking, + and quota increments. + + Command groups by use-case (approximate ratio of total operations): + - Session CRUD (HGETALL, HSET): ~55% + - User session tracking (SMEMBERS, SADD): ~21% + - Organization analytics (ZRANGE, ZADD): ~12% + - Rate limiting (INCR, EXPIRE, GET): ~12% + +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."BEST RUN RESULTS".Hgetalls."Ops/sec" + - $."BEST RUN RESULTS".Hsets."Ops/sec" + - $."BEST RUN RESULTS".Smemberss."Ops/sec" + - $."BEST RUN RESULTS".Sadds."Ops/sec" + - $."BEST RUN RESULTS".Zranges."Ops/sec" + - $."BEST RUN RESULTS".Zadds."Ops/sec" + - $."BEST RUN RESULTS".Incrs."Ops/sec" + - $."BEST RUN RESULTS".Gets."Ops/sec" + - $."BEST RUN RESULTS".Expires."Ops/sec" + - $."BEST RUN RESULTS".Totals."Ops/sec" + - $."BEST RUN RESULTS".Totals."Latency" + - $."BEST RUN RESULTS".Totals."Misses/sec" + - $."BEST RUN RESULTS".Totals."Percentile Latencies"."p50.00" + - $."BEST RUN RESULTS".Totals."Percentile Latencies"."p99.00" + - $."ALL STATS".Hgetalls."Ops/sec" + - $."ALL STATS".Hsets."Ops/sec" + - $."ALL STATS".Smemberss."Ops/sec" + - $."ALL STATS".Sadds."Ops/sec" + - $."ALL STATS".Zranges."Ops/sec" + - $."ALL STATS".Zadds."Ops/sec" + - $."ALL STATS".Incrs."Ops/sec" + - $."ALL STATS".Gets."Ops/sec" + - $."ALL STATS".Expires."Ops/sec" + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Hgetalls."Percentile Latencies"."p50.00" + - $."ALL STATS".Hsets."Percentile Latencies"."p50.00" + - $."ALL STATS".Smemberss."Percentile Latencies"."p50.00" + - $."ALL STATS".Sadds."Percentile Latencies"."p50.00" + - $."ALL STATS".Zranges."Percentile Latencies"."p50.00" + - $."ALL STATS".Zadds."Percentile Latencies"."p50.00" + - $."ALL STATS".Incrs."Percentile Latencies"."p50.00" + - $."ALL STATS".Gets."Percentile Latencies"."p50.00" + - $."ALL STATS".Expires."Percentile Latencies"."p50.00" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" + - $."ALL STATS".Totals."Percentile Latencies"."p99.00" + + +dbconfig: + configuration-parameters: + save: '""' + resources: + requests: + memory: 1g + init_lua: | + -- Use a fixed seed for reproducibility + local seed = 12345 + math.randomseed(seed) + + local now = tonumber(redis.call('TIME')[1]) + + local function rand_str(len) + local chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' + local res = '' + for i = 1, len do + local idx = math.random(#chars) + res = res .. chars:sub(idx, idx) + end + return res + end + + for i = 1, 100000 do + local session_id = 'session:' .. i + local user_id = 'user-' .. i + local org_id = 'org-' .. i + + redis.call('HSET', session_id, + 'userId', user_id, + 'organizationId', org_id, + 'role', 'member', + 'createdAt', tostring(now - math.random(3600)), + 'lastAccessed', tostring(now), + 'ipAddress', '192.168.1.' .. (i % 255), + 'device', 'device-' .. rand_str(8), + 'authMethod', 'password', + 'status', 'active', + 'metadata', rand_str(200 + (i % 100)) + ) + + redis.call('SADD', 'user:' .. i .. ':sessions', session_id) + + local org_key = 'org:' .. i .. ':sessions' + for j = 1, 10 do + local uid = 'user-' .. ((i + j) % 1000 + 1) + local sid = 'session:' .. ((i + j) % 1000 + 1) + local zmember = uid .. ':' .. sid + local zscore = now - math.random(86400) + redis.call('ZADD', org_key, zscore, zmember) + end + + local endpoint = '/api/resource' + local rate_key = 'ratelimit:' .. user_id .. ':' .. endpoint + redis.call('INCR', rate_key) + redis.call('EXPIRE', rate_key, 60) + end + + return 'OK' +tested-groups: +- hash +- zset +- set +- string + +tested-commands: +- hgetall +- hset +- smembers +- sadd +- zrange +- zadd +- incr +- expire +- get + +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub + +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: > + --key-prefix "" + --key-minimum 1 + --key-maximum 100000 + --data-size-range=400-600 + --pipeline=1 + --print-percentiles=50,90,95,99 + --run-count=1 + --test-time=120 + --command="HGETALL session:__key__" + --command-key-pattern=R + --command-ratio=50 + --command="HSET session:__key__ userId user-__key__ organizationId org-__key__ role admin email user__key__@example.com name "User __key__" permissions "["read","write"]" lastActivity __timestamp__ ipAddress 192.168.1.__key__ userAgent "Mozilla/5.0" createdAt __timestamp__" + --command-key-pattern=R + --command-ratio=5 + --command="SMEMBERS user:__key__:sessions" + --command-key-pattern=R + --command-ratio=18 + --command="SADD user:__key__:sessions session-__key__" + --command-key-pattern=R + --command-ratio=3 + --command="ZRANGE org:__key__:sessions 0 -1 WITHSCORES" + --command-key-pattern=R + --command-ratio=10 + --command="ZADD org:__key__:sessions 1 user-__key__:session-__key__" + --command-key-pattern=R + --command-ratio=2 + --command="INCR ratelimit:user-__key__:/api/resource" + --command-key-pattern=R + --command-ratio=4 + --command="EXPIRE ratelimit:user-__key__:/api/resource 60" + --command-key-pattern=R + --command-ratio=1 + --command="GET ratelimit:user-__key__:/api/resource" + --command-key-pattern=R + --command-ratio=7 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 2g + +priority: 150 \ No newline at end of file From 85a3492c7fe6bff3ebd05b7bee9ae30180c356cd Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Tue, 5 Aug 2025 19:22:34 +0100 Subject: [PATCH 08/16] Updated the memtier_benchmark-playbook-session-storage benchmark to match https://github.com/upstash/examples/tree/main/examples/ratelimit-with-redis --- ...ier_benchmark-playbook-session-storage.yml | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml index 676e69e8..b5f9fbbd 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml @@ -6,12 +6,27 @@ description: | and rate limiting. It includes realistic key sizes and command mixes representative of production traffic (e.g., 400–600B session hashes, ZSETs for analytics, and SETs for tracking). - Rate limiting is modeled using Redis counters with expiration and readback: each user has a - dedicated rate-limit key in the form of `ratelimit:user-:/api/resource`, which is: - - incremented (`INCR`) to track API usage, - - assigned a TTL (`EXPIRE`) to define the 60-second rate window, - - and read (`GET`) to simulate application-side decision-making (e.g., to check if a user is over quota). - This models realistic per-user rate-limiting behavior for a single endpoint. + Rate limiting is modeled using an atomic Lua script, inspired by the Upstash Redis example: + https://github.com/upstash/examples/tree/main/examples/ratelimit-with-redis + + Each user has a dedicated key in the form of `ratelimit:user-:/api/resource`, which is + used to track usage under a fixed window. The logic is evaluated atomically with the following script: + + local key = KEYS[1] + local limit = 100 + local window = 60 + local current = redis.call("INCR", key) + if current == 1 then + redis.call("EXPIRE", key, window) + end + if current > limit then + return 0 + else + return 1 + end + + This ensures that rate enforcement and usage tracking are done without race conditions, and + mirrors a real-world API quota model. The workload emphasizes read-heavy patterns to reflect common SaaS access behavior. The overall **read:write ratio is approximately 85:15**, with read operations covering session access, user-session @@ -22,7 +37,7 @@ description: | - Session CRUD (HGETALL, HSET): ~55% - User session tracking (SMEMBERS, SADD): ~21% - Organization analytics (ZRANGE, ZADD): ~12% - - Rate limiting (INCR, EXPIRE, GET): ~12% + - Rate limiting (EVAL-based quota check): ~12% exporter: redistimeseries: @@ -37,9 +52,7 @@ exporter: - $."BEST RUN RESULTS".Sadds."Ops/sec" - $."BEST RUN RESULTS".Zranges."Ops/sec" - $."BEST RUN RESULTS".Zadds."Ops/sec" - - $."BEST RUN RESULTS".Incrs."Ops/sec" - - $."BEST RUN RESULTS".Gets."Ops/sec" - - $."BEST RUN RESULTS".Expires."Ops/sec" + - $."BEST RUN RESULTS".Evals."Ops/sec" - $."BEST RUN RESULTS".Totals."Ops/sec" - $."BEST RUN RESULTS".Totals."Latency" - $."BEST RUN RESULTS".Totals."Misses/sec" @@ -51,9 +64,7 @@ exporter: - $."ALL STATS".Sadds."Ops/sec" - $."ALL STATS".Zranges."Ops/sec" - $."ALL STATS".Zadds."Ops/sec" - - $."ALL STATS".Incrs."Ops/sec" - - $."ALL STATS".Gets."Ops/sec" - - $."ALL STATS".Expires."Ops/sec" + - $."ALL STATS".Evals."Ops/sec" - $."ALL STATS".Totals."Ops/sec" - $."ALL STATS".Totals."Latency" - $."ALL STATS".Totals."Misses/sec" @@ -63,9 +74,7 @@ exporter: - $."ALL STATS".Sadds."Percentile Latencies"."p50.00" - $."ALL STATS".Zranges."Percentile Latencies"."p50.00" - $."ALL STATS".Zadds."Percentile Latencies"."p50.00" - - $."ALL STATS".Incrs."Percentile Latencies"."p50.00" - - $."ALL STATS".Gets."Percentile Latencies"."p50.00" - - $."ALL STATS".Expires."Percentile Latencies"."p50.00" + - $."ALL STATS".Evals."Percentile Latencies"."p50.00" - $."ALL STATS".Totals."Percentile Latencies"."p50.00" - $."ALL STATS".Totals."Percentile Latencies"."p99.00" @@ -182,15 +191,9 @@ clientconfig: --command="ZADD org:__key__:sessions 1 user-__key__:session-__key__" --command-key-pattern=R --command-ratio=2 - --command="INCR ratelimit:user-__key__:/api/resource" - --command-key-pattern=R - --command-ratio=4 - --command="EXPIRE ratelimit:user-__key__:/api/resource 60" - --command-key-pattern=R - --command-ratio=1 - --command="GET ratelimit:user-__key__:/api/resource" + --command='EVAL "local key=KEYS[1];local limit=10;local window=60;local current=redis.call(\"INCR\",key);if current==1 then redis.call(\"EXPIRE\",key,window) end;if current>limit then return 0 else return 1 end" 1 ratelimit:user-__key__:/api/resource' --command-key-pattern=R - --command-ratio=7 + --command-ratio=12 --hide-histogram resources: requests: From 7378f18c927bcb11030dcf0a58c2b826ba420c6c Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 11:05:15 +0100 Subject: [PATCH 09/16] Added caching and session-storage benchmarks --- pyproject.toml | 2 +- .../__compare__/args.py | 2 +- .../__compare__/compare.py | 12 +- .../__runner__/runner.py | 80 +- .../__self_contained_coordinator__/clients.py | 10 + .../__self_contained_coordinator__/docker.py | 12 +- .../__self_contained_coordinator__/runners.py | 14 +- .../self_contained_coordinator.py | 15 +- ...ook-session-caching-hash-100k-sessions.yml | 107 +++ ...laybook-session-storage-100k-sessions.yml} | 2 +- ...k-playbook-session-storage-1k-sessions.yml | 203 +++++ utils/ai_dataset_naming.py | 823 ++++++++++++++++++ .../tests/test_self_contained_coordinator.py | 4 +- 13 files changed, 1244 insertions(+), 42 deletions(-) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml rename redis_benchmarks_specification/test-suites/{memtier_benchmark-playbook-session-storage.yml => memtier_benchmark-playbook-session-storage-100k-sessions.yml} (99%) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml create mode 100644 utils/ai_dataset_naming.py diff --git a/pyproject.toml b/pyproject.toml index acdb9660..334588e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "redis-benchmarks-specification" -version = "0.1.302" +version = "0.1.309" description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute." authors = ["filipecosta90 ","Redis Performance Group "] readme = "Readme.md" diff --git a/redis_benchmarks_specification/__compare__/args.py b/redis_benchmarks_specification/__compare__/args.py index f1a4497d..88af1ae2 100644 --- a/redis_benchmarks_specification/__compare__/args.py +++ b/redis_benchmarks_specification/__compare__/args.py @@ -77,7 +77,7 @@ def create_compare_arguments(parser): parser.add_argument("--comparison_deployment_name", type=str, default="") parser.add_argument("--metric_name", type=str, default="ALL_STATS.Totals.Ops/sec") parser.add_argument( - "--running_platform", type=str, default="intel64-ubuntu22.04-redis-icx1" + "--running_platform", type=str, default=None ) parser.add_argument( "--running_platform_baseline", diff --git a/redis_benchmarks_specification/__compare__/compare.py b/redis_benchmarks_specification/__compare__/compare.py index 1403d038..6635bb8b 100644 --- a/redis_benchmarks_specification/__compare__/compare.py +++ b/redis_benchmarks_specification/__compare__/compare.py @@ -1182,7 +1182,7 @@ def from_rts_to_regression_table( filters_baseline.append("deployment_name={}".format(baseline_deployment_name)) if baseline_github_org != "": filters_baseline.append(f"github_org={baseline_github_org}") - if running_platform_baseline is not None: + if running_platform_baseline is not None and running_platform_baseline != "": filters_baseline.append( "running_platform={}".format(running_platform_baseline) ) @@ -1202,7 +1202,7 @@ def from_rts_to_regression_table( filters_baseline.append("hash==") if "hash" not in by_str_comparison: filters_comparison.append("hash==") - if running_platform_comparison is not None: + if running_platform_comparison is not None and running_platform_comparison != "": filters_comparison.append( "running_platform={}".format(running_platform_comparison) ) @@ -1538,12 +1538,18 @@ def from_rts_to_regression_table( def get_only_Totals(baseline_timeseries): logging.warning("\t\tTime-series: {}".format(", ".join(baseline_timeseries))) - logging.info("Checking if Totals will reduce timeseries.") + logging.info(f"Checking if Totals will reduce timeseries. initial len={len(baseline_timeseries)}") new_base = [] for ts_name in baseline_timeseries: + if "io-threads" in ts_name: + continue + if "oss-cluster" in ts_name: + continue if "Totals" in ts_name: new_base.append(ts_name) baseline_timeseries = new_base + logging.info(f" final len={len(baseline_timeseries)}") + return baseline_timeseries diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index 35dce248..e10c0d47 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -1393,17 +1393,27 @@ def delete_temporary_files( ssl_cert_reqs = "required" if tls_skip_verify: ssl_cert_reqs = None - r = redis.StrictRedis( - host=host, - port=port, - password=password, - ssl=tls_enabled, - ssl_cert_reqs=ssl_cert_reqs, - ssl_keyfile=tls_key, - ssl_certfile=tls_cert, - ssl_ca_certs=tls_cacert, - ssl_check_hostname=False, - ) + + # Build Redis connection parameters + redis_params = { + "host": host, + "port": port, + "password": password, + "ssl": tls_enabled, + "ssl_cert_reqs": ssl_cert_reqs, + "ssl_check_hostname": False, + } + + # Only add SSL certificate parameters if they are provided + if tls_enabled: + if tls_key is not None and tls_key != "": + redis_params["ssl_keyfile"] = tls_key + if tls_cert is not None and tls_cert != "": + redis_params["ssl_certfile"] = tls_cert + if tls_cacert is not None and tls_cacert != "": + redis_params["ssl_ca_certs"] = tls_cacert + + r = redis.StrictRedis(**redis_params) setup_name = "oss-standalone" r.ping() @@ -1456,17 +1466,26 @@ def delete_temporary_files( slot_network_info = slot[2] prefered_endpoint = slot_network_info[0] prefered_port = slot_network_info[1] - shard_conn = redis.StrictRedis( - host=prefered_endpoint, - port=prefered_port, - password=password, - ssl=tls_enabled, - ssl_cert_reqs=ssl_cert_reqs, - ssl_keyfile=tls_key, - ssl_certfile=tls_cert, - ssl_ca_certs=tls_cacert, - ssl_check_hostname=False, - ) + # Build shard connection parameters + shard_params = { + "host": prefered_endpoint, + "port": prefered_port, + "password": password, + "ssl": tls_enabled, + "ssl_cert_reqs": ssl_cert_reqs, + "ssl_check_hostname": False, + } + + # Only add SSL certificate parameters if they are provided + if tls_enabled: + if tls_key is not None and tls_key != "": + shard_params["ssl_keyfile"] = tls_key + if tls_cert is not None and tls_cert != "": + shard_params["ssl_certfile"] = tls_cert + if tls_cacert is not None and tls_cacert != "": + shard_params["ssl_ca_certs"] = tls_cacert + + shard_conn = redis.StrictRedis(**shard_params) redis_conns.append(shard_conn) logging.info( "There are a total of {} shards".format(len(redis_conns)) @@ -1475,8 +1494,12 @@ def delete_temporary_files( redis_pids = [] for conn in redis_conns: - redis_pid = conn.info()["process_id"] - redis_pids.append(redis_pid) + redis_info = conn.info() + redis_pid = redis_info.get("process_id") + if redis_pid is not None: + redis_pids.append(redis_pid) + else: + logging.warning("Redis process_id not found in INFO command, skipping PID collection for this connection") # Check if all tested commands are supported by this Redis instance supported_commands = get_supported_redis_commands(redis_conns) @@ -2991,6 +3014,11 @@ def get_supported_redis_commands(redis_conns): f"Retrieved {len(supported_commands)} supported Redis commands" ) + # Handle case where COMMAND returns 0 commands (likely not supported) + if len(supported_commands) == 0: + logging.warning("COMMAND returned 0 commands - likely not supported by this Redis instance") + return None + # Log some sample commands for debugging if supported_commands: sample_commands = sorted(list(supported_commands))[:10] @@ -3013,8 +3041,8 @@ def get_supported_redis_commands(redis_conns): def check_test_command_support(benchmark_config, supported_commands): """Check if all tested-commands in the benchmark config are supported""" - if supported_commands is None: - logging.warning("No supported commands list available, skipping command check") + if supported_commands is None or len(supported_commands) == 0: + logging.warning("No supported commands list available (COMMAND not supported or returned 0 commands), skipping command check") return True, [] if "tested-commands" not in benchmark_config: diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/clients.py b/redis_benchmarks_specification/__self_contained_coordinator__/clients.py index 9448e1aa..46c1d2a8 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/clients.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/clients.py @@ -1,3 +1,6 @@ +import logging + + def prepare_memtier_benchmark_parameters( clientconfig, full_benchmark_path, @@ -5,6 +8,7 @@ def prepare_memtier_benchmark_parameters( server, local_benchmark_output_filename, oss_cluster_api_enabled, + password=None, ): benchmark_command = [ full_benchmark_path, @@ -15,6 +19,12 @@ def prepare_memtier_benchmark_parameters( "--server", "{}".format(server), ] + + # Add password authentication if provided + if password is not None and password != "": + benchmark_command.extend(["--authenticate", password]) + logging.info("Memtier benchmark will use password authentication") + if oss_cluster_api_enabled is True: benchmark_command.append("--cluster-mode") benchmark_command_str = " ".join(benchmark_command) diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/docker.py b/redis_benchmarks_specification/__self_contained_coordinator__/docker.py index ea35d6b6..1daebc0a 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/docker.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/docker.py @@ -8,9 +8,9 @@ def generate_standalone_redis_server_args( - binary, port, dbdir, configuration_parameters=None, redis_arguments="" + binary, port, dbdir, configuration_parameters=None, redis_arguments="", password=None ): - added_params = ["port", "protected-mode", "dir"] + added_params = ["port", "protected-mode", "dir", "requirepass"] # start redis-server command = [ binary, @@ -19,6 +19,11 @@ def generate_standalone_redis_server_args( "--port", "{}".format(port), ] + + # Add password authentication if provided + if password is not None and password != "": + command.extend(["--requirepass", password]) + logging.info("Redis server will be started with password authentication") if dbdir != "": command.extend(["--dir", dbdir]) if configuration_parameters is not None: @@ -59,6 +64,7 @@ def spin_docker_standalone_redis( redis_proc_start_port, run_image, temporary_dir, + password=None, ): mnt_point = "/mnt/redis/" command = generate_standalone_redis_server_args( @@ -66,6 +72,8 @@ def spin_docker_standalone_redis( redis_proc_start_port, mnt_point, redis_configuration_parameters, + "", + password, ) command_str = " ".join(command) db_cpuset_cpus, current_cpu_pos = generate_cpuset_cpus( diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py index 067c7823..85683a23 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py @@ -118,6 +118,8 @@ def process_self_contained_coordinator_stream( verbose=False, run_tests_with_dataset=False, ): + # Use a default password for coordinator Redis instances + redis_password = "redis_coordinator_password_2024" stream_id = "n/a" overall_result = False total_test_suite_runs = 0 @@ -276,6 +278,7 @@ def process_self_contained_coordinator_stream( redis_proc_start_port, run_image, temporary_dir, + redis_password, ) else: shard_count = 1 @@ -307,11 +310,15 @@ def process_self_contained_coordinator_stream( ) ) - r = redis.StrictRedis(port=redis_proc_start_port) + r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password) r.ping() redis_pids = [] - first_redis_pid = r.info()["process_id"] - redis_pids.append(first_redis_pid) + redis_info = r.info() + first_redis_pid = redis_info.get("process_id") + if first_redis_pid is not None: + redis_pids.append(first_redis_pid) + else: + logging.warning("Redis process_id not found in INFO command") ceil_client_cpu_limit = extract_client_cpu_limit( benchmark_config ) @@ -385,6 +392,7 @@ def process_self_contained_coordinator_stream( "localhost", local_benchmark_output_filename, benchmark_tool_workdir, + redis_password, ) elif "vector_db_benchmark" in benchmark_tool: ( diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py index bab0091f..5ec2c5ac 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py @@ -496,6 +496,9 @@ def process_self_contained_coordinator_stream( restore_build_artifacts_default=True, args=None, ): + # Use a default password for coordinator Redis instances + redis_password = "redis_coordinator_password_2024" + stream_id = "n/a" overall_result = False total_test_suite_runs = 0 @@ -861,6 +864,7 @@ def process_self_contained_coordinator_stream( mnt_point, redis_configuration_parameters, redis_arguments, + redis_password, ) command_str = " ".join(command) db_cpuset_cpus, current_cpu_pos = generate_cpuset_cpus( @@ -876,13 +880,16 @@ def process_self_contained_coordinator_stream( temporary_dir, ) - r = redis.StrictRedis(port=redis_proc_start_port) + r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password) r.ping() redis_conns = [r] reset_commandstats(redis_conns) redis_pids = [] redis_info = r.info() - first_redis_pid = redis_info["process_id"] + first_redis_pid = redis_info.get("process_id") + if first_redis_pid is None: + logging.warning("Redis process_id not found in INFO command") + first_redis_pid = "unknown" if git_hash is None and "redis_git_sha1" in redis_info: git_hash = redis_info["redis_git_sha1"] if ( @@ -972,7 +979,7 @@ def process_self_contained_coordinator_stream( full_benchmark_path, redis_proc_start_port, "localhost", - None, + redis_password, local_benchmark_output_filename, False, False, @@ -1718,7 +1725,7 @@ def data_prepopulation_step( full_benchmark_path, port, "localhost", - None, + redis_password, local_benchmark_output_filename, False, ) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml new file mode 100644 index 00000000..93a23487 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml @@ -0,0 +1,107 @@ +version: 0.4 +name: memtier_benchmark-session-caching-hash-100k-sessions +description: | + Runs memtier_benchmark to simulate a session caching workload for a SaaS application. + This benchmark focuses exclusively on hash-based session storage, where each session + is stored in a Redis hash (`session:`) with fields like user ID, timestamps, device info, + and metadata (total ~400–600B). + + The benchmark models a typical read-heavy cache usage pattern, with an approximate + **read:write ratio of 90:10**, reflecting session retrievals and infrequent updates. + + Command groups: + - Session cache reads (`HGETALL`): ~90% + - Session cache writes (`HSET`): ~10% + + To better approximate real-world access patterns, the benchmark uses a **Zipfian key distribution** + (`--command-key-pattern=Z`). This simulates **skewed access** where a small subset of sessions (hot keys) + receives a majority of reads — a common pattern in production workloads. + + While Zipfian is technically a power-law distribution, it effectively mimics **Poisson-like behavior** + in large-scale systems, where access frequency is uneven but statistically predictable. + This access skew mirrors real-life scenarios such as: + - Frequently accessed or "sticky" user sessions + - Popular user accounts or active devices + - Hot caches for trending or recently used resources + + Using Zipfian distribution allows this benchmark to capture **contention**, **cache pressure**, and + **read amplification** effects that occur in real SaaS applications under load. + + +dbconfig: + configuration-parameters: + save: '""' + resources: + requests: + memory: 1g + init_lua: | + local seed = 12345 + math.randomseed(seed) + local now = tonumber(redis.call('TIME')[1]) + local function rand_str(len) + local chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' + local res = '' + for i = 1, len do + local idx = math.random(#chars) + res = res .. chars:sub(idx, idx) + end + return res + end + for i = 1, 100000 do + local session_id = 'session:' .. i + local user_id = 'user-' .. i + local org_id = 'org-' .. i + redis.call('HSET', session_id, + 'userId', user_id, + 'organizationId', org_id, + 'role', 'member', + 'createdAt', tostring(now - math.random(3600)), + 'lastAccessed', tostring(now), + 'ipAddress', '192.168.1.' .. (i % 255), + 'device', 'device-' .. rand_str(8), + 'authMethod', 'password', + 'status', 'active', + 'metadata', rand_str(200 + (i % 100)) + ) + end + return 'OK' + +tested-groups: +- hash + +tested-commands: +- hgetall +- hset + +redis-topologies: +- oss-standalone + +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub + +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: > + --key-prefix "" + --key-minimum 1 + --key-maximum 100000 + --data-size-range=400-600 + --pipeline=1 + --print-percentiles=50,90,95,99 + --run-count=1 + --test-time=120 + --command="HGETALL session:__key__" + --command-key-pattern=Z + --command-ratio=90 + --command="HSET session:__key__ userId user-__key__ organizationId org-__key__ role admin email user__key__@example.com name \"User __key__\" permissions \"[\\\"read\\\",\\\"write\\\"]\" lastActivity __key__ ipAddress 192.168.1.__key__ userAgent \"Mozilla/5.0\" createdAt __key__" + --command-key-pattern=Z + --command-ratio=10 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 2g + +priority: 150 diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml similarity index 99% rename from redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml rename to redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml index b5f9fbbd..20843944 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml @@ -1,5 +1,5 @@ version: 0.4 -name: memtier_benchmark-playbook-session-storage +name: memtier_benchmark-playbook-session-storage-100k-sessions description: | Runs memtier_benchmark to simulate a session-based SaaS application. The workload mimics user session CRUD, session tracking, organization-level analytics, diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml new file mode 100644 index 00000000..28c0f54d --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml @@ -0,0 +1,203 @@ +version: 0.4 +name: memtier_benchmark-playbook-session-storage-1k-sessions +description: | + Runs memtier_benchmark to simulate a session-based SaaS application. + The workload mimics user session CRUD, session tracking, organization-level analytics, + and rate limiting. It includes realistic key sizes and command mixes representative + of production traffic (e.g., 400–600B session hashes, ZSETs for analytics, and SETs for tracking). + + Rate limiting is modeled using an atomic Lua script, inspired by the Upstash Redis example: + https://github.com/upstash/examples/tree/main/examples/ratelimit-with-redis + + Each user has a dedicated key in the form of `ratelimit:user-:/api/resource`, which is + used to track usage under a fixed window. The logic is evaluated atomically with the following script: + + local key = KEYS[1] + local limit = 100 + local window = 60 + local current = redis.call("INCR", key) + if current == 1 then + redis.call("EXPIRE", key, window) + end + if current > limit then + return 0 + else + return 1 + end + + This ensures that rate enforcement and usage tracking are done without race conditions, and + mirrors a real-world API quota model. + + The workload emphasizes read-heavy patterns to reflect common SaaS access behavior. The overall + **read:write ratio is approximately 85:15**, with read operations covering session access, user-session + lookups, org analytics, and rate limit enforcement, while writes handle session updates, activity tracking, + and quota increments. + + Command groups by use-case (approximate ratio of total operations): + - Session CRUD (HGETALL, HSET): ~55% + - User session tracking (SMEMBERS, SADD): ~21% + - Organization analytics (ZRANGE, ZADD): ~12% + - Rate limiting (EVAL-based quota check): ~12% + +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."BEST RUN RESULTS".Hgetalls."Ops/sec" + - $."BEST RUN RESULTS".Hsets."Ops/sec" + - $."BEST RUN RESULTS".Smemberss."Ops/sec" + - $."BEST RUN RESULTS".Sadds."Ops/sec" + - $."BEST RUN RESULTS".Zranges."Ops/sec" + - $."BEST RUN RESULTS".Zadds."Ops/sec" + - $."BEST RUN RESULTS".Evals."Ops/sec" + - $."BEST RUN RESULTS".Totals."Ops/sec" + - $."BEST RUN RESULTS".Totals."Latency" + - $."BEST RUN RESULTS".Totals."Misses/sec" + - $."BEST RUN RESULTS".Totals."Percentile Latencies"."p50.00" + - $."BEST RUN RESULTS".Totals."Percentile Latencies"."p99.00" + - $."ALL STATS".Hgetalls."Ops/sec" + - $."ALL STATS".Hsets."Ops/sec" + - $."ALL STATS".Smemberss."Ops/sec" + - $."ALL STATS".Sadds."Ops/sec" + - $."ALL STATS".Zranges."Ops/sec" + - $."ALL STATS".Zadds."Ops/sec" + - $."ALL STATS".Evals."Ops/sec" + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Hgetalls."Percentile Latencies"."p50.00" + - $."ALL STATS".Hsets."Percentile Latencies"."p50.00" + - $."ALL STATS".Smemberss."Percentile Latencies"."p50.00" + - $."ALL STATS".Sadds."Percentile Latencies"."p50.00" + - $."ALL STATS".Zranges."Percentile Latencies"."p50.00" + - $."ALL STATS".Zadds."Percentile Latencies"."p50.00" + - $."ALL STATS".Evals."Percentile Latencies"."p50.00" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" + - $."ALL STATS".Totals."Percentile Latencies"."p99.00" + + +dbconfig: + configuration-parameters: + save: '""' + resources: + requests: + memory: 1g + init_lua: | + -- Use a fixed seed for reproducibility + local seed = 12345 + math.randomseed(seed) + + local now = tonumber(redis.call('TIME')[1]) + + local function rand_str(len) + local chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' + local res = '' + for i = 1, len do + local idx = math.random(#chars) + res = res .. chars:sub(idx, idx) + end + return res + end + + for i = 1, 1000 do + local session_id = 'session:' .. i + local user_id = 'user-' .. i + local org_id = 'org-' .. i + + redis.call('HSET', session_id, + 'userId', user_id, + 'organizationId', org_id, + 'role', 'member', + 'createdAt', tostring(now - math.random(3600)), + 'lastAccessed', tostring(now), + 'ipAddress', '192.168.1.' .. (i % 255), + 'device', 'device-' .. rand_str(8), + 'authMethod', 'password', + 'status', 'active', + 'metadata', rand_str(200 + (i % 100)) + ) + + redis.call('SADD', 'user:' .. i .. ':sessions', session_id) + + local org_key = 'org:' .. i .. ':sessions' + for j = 1, 10 do + local uid = 'user-' .. ((i + j) % 1000 + 1) + local sid = 'session:' .. ((i + j) % 1000 + 1) + local zmember = uid .. ':' .. sid + local zscore = now - math.random(86400) + redis.call('ZADD', org_key, zscore, zmember) + end + + local endpoint = '/api/resource' + local rate_key = 'ratelimit:' .. user_id .. ':' .. endpoint + redis.call('INCR', rate_key) + redis.call('EXPIRE', rate_key, 60) + end + + return 'OK' +tested-groups: +- hash +- zset +- set +- string + +tested-commands: +- hgetall +- hset +- smembers +- sadd +- zrange +- zadd +- incr +- expire +- get + +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +- dockerhub + +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: > + --key-prefix "" + --key-minimum 1 + --key-maximum 1000 + --data-size-range=400-600 + --pipeline=1 + --print-percentiles=50,90,95,99 + --run-count=1 + --test-time=120 + --command="HGETALL session:__key__" + --command-key-pattern=R + --command-ratio=50 + --command="HSET session:__key__ userId user-__key__ organizationId org-__key__ role admin email user__key__@example.com name "User __key__" permissions "["read","write"]" lastActivity __timestamp__ ipAddress 192.168.1.__key__ userAgent "Mozilla/5.0" createdAt __timestamp__" + --command-key-pattern=R + --command-ratio=5 + --command="SMEMBERS user:__key__:sessions" + --command-key-pattern=R + --command-ratio=18 + --command="SADD user:__key__:sessions session-__key__" + --command-key-pattern=R + --command-ratio=3 + --command="ZRANGE org:__key__:sessions 0 -1 WITHSCORES" + --command-key-pattern=R + --command-ratio=10 + --command="ZADD org:__key__:sessions 1 user-__key__:session-__key__" + --command-key-pattern=R + --command-ratio=2 + --command='EVAL "local key=KEYS[1];local limit=10;local window=60;local current=redis.call(\"INCR\",key);if current==1 then redis.call(\"EXPIRE\",key,window) end;if current>limit then return 0 else return 1 end" 1 ratelimit:user-__key__:/api/resource' + --command-key-pattern=R + --command-ratio=12 + --hide-histogram + resources: + requests: + cpus: '4' + memory: 2g + +priority: 150 \ No newline at end of file diff --git a/utils/ai_dataset_naming.py b/utils/ai_dataset_naming.py new file mode 100644 index 00000000..edc56f9a --- /dev/null +++ b/utils/ai_dataset_naming.py @@ -0,0 +1,823 @@ +#!/usr/bin/env python3 +""" +AI-powered dataset naming script that uses OpenAI to generate descriptive dataset names. +Analyzes test description, preload commands, and keyspace checks to create meaningful dataset names. +""" + +import os +import yaml +import glob +import json +import threading +from pathlib import Path +from concurrent.futures import ThreadPoolExecutor, as_completed + +try: + import openai + OPENAI_AVAILABLE = True + # Set your OpenAI API key here or via environment variable + # openai.api_key = os.getenv("OPENAI_API_KEY") +except ImportError: + OPENAI_AVAILABLE = False + print("Warning: OpenAI package not installed. Install with: pip install openai") + +def extract_full_context(content, dbconfig): + """Extract all relevant context for dataset analysis.""" + context = { + 'test_name': content.get('name', ''), + 'description': content.get('description', ''), + 'keyspacelen': dbconfig.get('check', {}).get('keyspacelen', 0), + 'preload_details': {}, + 'tested_commands': content.get('tested-commands', []), + 'tested_groups': content.get('tested-groups', []) + } + + # Extract preload information + if 'preload_tool' in dbconfig: + preload = dbconfig['preload_tool'] + context['preload_details'] = { + 'type': 'preload_tool', + 'tool': preload.get('tool', ''), + 'arguments': preload.get('arguments', ''), + 'run_image': preload.get('run_image', '') + } + elif 'init_commands' in dbconfig: + context['preload_details'] = { + 'type': 'init_commands', + 'commands': dbconfig['init_commands'] + } + + return context + +def generate_manual_description(context, dataset_name): + """Generate a manual description for the dataset.""" + keyspacelen = context['keyspacelen'] + + # Parse dataset name components + parts = dataset_name.split('-') + + description_parts = [] + + # Key count description + if 'Mkeys' in dataset_name: + description_parts.append(f"{keyspacelen//1000000} million keys") + elif 'Kkeys' in dataset_name: + description_parts.append(f"{keyspacelen//1000} thousand keys") + elif 'key' in dataset_name: + if keyspacelen == 1: + description_parts.append("1 key") + else: + description_parts.append(f"{keyspacelen} keys") + + # Data type description + if 'hash' in parts: + description_parts.append("containing Redis hash data structures") + if any('field' in p for p in parts): + field_part = next(p for p in parts if 'field' in p) + field_count = field_part.split('-')[0] + description_parts.append(f"with {field_count} field(s) each") + elif 'zset' in parts: + description_parts.append("containing Redis sorted set data structures") + if 'elements' in dataset_name: + elem_part = next(p for p in parts if 'elements' in p or p.endswith('M') or p.endswith('K')) + description_parts.append(f"with {elem_part} elements each") + elif 'string' in parts: + description_parts.append("containing Redis string values") + elif 'list' in parts: + description_parts.append("containing Redis list data structures") + elif 'set' in parts: + description_parts.append("containing Redis set data structures") + elif 'bitmap' in parts: + description_parts.append("containing Redis bitmap data structures") + + # Size description + size_parts = [p for p in parts if 'B-size' in p or 'KiB-size' in p] + if size_parts: + size_info = size_parts[0].replace('-size', '') + description_parts.append(f"where each value is {size_info}") + + return ". ".join(description_parts).capitalize() + "." + +def generate_dataset_name_with_ai(context): + """Use OpenAI to generate a descriptive dataset name based on full context.""" + if not OPENAI_AVAILABLE: + manual_name = analyze_context_manually(context) + manual_desc = generate_manual_description(context, manual_name) + return manual_name, manual_desc, "Generated from manual analysis" + + try: + # Prepare detailed context for AI + preload_info = "" + if context['preload_details'].get('type') == 'preload_tool': + preload_info = f""" +Preload Tool: {context['preload_details'].get('tool', '')} +Arguments: {context['preload_details'].get('arguments', '')} +""" + elif context['preload_details'].get('type') == 'init_commands': + preload_info = f""" +Init Commands: {context['preload_details'].get('commands', '')} +""" + + prompt = f""" +You are analyzing Redis benchmark tests to create precise dataset names. The dataset name should describe the exact data structure and characteristics being loaded, not the operations performed. + +Test Information: +- Test Name: {context['test_name']} +- Description: {context['description']} +- Keyspace Length: {context['keyspacelen']} keys +- Tested Commands: {context['tested_commands']} +- Tested Groups: {context['tested_groups']} + +{preload_info} + +Requirements for dataset name: +1. Start with key count: "1Mkeys", "100Kkeys", "1key", etc. +2. Include data type: "string", "hash", "zset", "list", "set", "bitmap" +3. Include structure details: + - For hashes: number of fields ("1-field", "5-fields", "50-fields") + - For sorted sets: element count and score type ("1M-elements-integer", "100-elements-float") + - For strings: just the size ("32B", "1KiB") + - For lists: element count if relevant +4. Include size information: "32B-size", "100B-size", "1KiB-size" +5. Be specific but concise (4-6 components max) + +Examples: +- "1Mkeys-hash-1-field-32B-size" (1M hash keys, 1 field each, 32 bytes per field) +- "1Mkeys-hash-5-fields-1000B-size" (1M hash keys, 5 fields each, 1000 bytes per field) +- "1key-zset-1M-elements-integer" (1 sorted set key, 1M elements, integer scores) +- "1Mkeys-string-100B-size" (1M string keys, 100 bytes each) + +For dataset_description, provide a clear, concise description that: +1. States the exact number and type of keys +2. Describes the data structure details (fields, elements, etc.) +3. Mentions data sizes and any special characteristics +4. Uses consistent language and format +5. Is 1-2 sentences maximum + +Example descriptions: +- "This dataset contains 1 million hash keys, each with 5 fields and each field has a data size of 1000 bytes." +- "This dataset contains 1 sorted set key with 1 million elements, each with an integer score." +- "This dataset contains 1 million string keys, each with a data size of 100 bytes." + +Analyze the preload commands and description to determine: +- Exact data type being created +- Number of fields/elements +- Data size per field/element +- Any special characteristics + +Respond with JSON: +{{ + "dataset_name": "precise dataset name", + "dataset_description": "clear description of what the dataset contains", + "reasoning": "detailed explanation of data structure analysis", + "data_type": "string/hash/zset/list/set/bitmap", + "key_count": "number of keys", + "structure_details": "fields, elements, etc.", + "size_info": "data size details" +}} +""" + + response = openai.chat.completions.create( + model="gpt-4", # Use GPT-4 for better analysis + messages=[{"role": "user", "content": prompt}], + temperature=0.1, + max_tokens=500 + ) + + result = json.loads(response.choices[0].message.content) + return result.get("dataset_name", ""), result.get("dataset_description", ""), result.get("reasoning", "") + + except Exception as e: + manual_name = analyze_context_manually(context) + manual_desc = generate_manual_description(context, manual_name) + return manual_name, manual_desc, f"AI error, used manual analysis: {e}" + +def analyze_context_manually(context): + """Manual analysis fallback when AI is not available.""" + parts = [] + + # Key count + keyspacelen = context['keyspacelen'] + if keyspacelen >= 1000000: + parts.append(f"{keyspacelen//1000000}Mkeys") + elif keyspacelen >= 1000: + parts.append(f"{keyspacelen//1000}Kkeys") + elif keyspacelen > 1: + parts.append(f"{keyspacelen}keys") + elif keyspacelen == 1: + parts.append("1key") + + # Analyze preload for data type and structure + if context['preload_details'].get('type') == 'preload_tool': + args = context['preload_details'].get('arguments', '').lower() + + # Detect data type and structure + if 'hset' in args: + parts.append("hash") + # Count fields in HSET command + field_count = args.count('field') + if field_count > 0: + parts.append(f"{field_count}-fields") + else: + # Look for pattern like "field __data__" or "field1 __data__ field2 __data__" + import re + field_matches = re.findall(r'field\d*', args) + if field_matches: + parts.append(f"{len(field_matches)}-fields") + else: + parts.append("1-fields") # Default assumption + elif 'zadd' in args: + parts.append("zset") + elif 'lpush' in args or 'rpush' in args: + parts.append("list") + elif 'sadd' in args: + parts.append("set") + elif 'setbit' in args: + parts.append("bitmap") + else: + parts.append("string") + + # Extract data size + import re + size_match = re.search(r'--data-size["\s]+(\d+)', args) + if size_match: + size = int(size_match.group(1)) + if size >= 1024: + parts.append(f"{size//1024}KiB-size") + else: + parts.append(f"{size}B-size") + + # Use tested groups as hint if no preload info + elif context['tested_groups']: + data_type = context['tested_groups'][0] + parts.append(data_type) + if data_type == 'hash': + parts.append("1-fields") # Default assumption + parts.append("32B-size") # Default assumption + + return "-".join(parts) if len(parts) > 1 else "unknown-dataset" + +def should_have_dataset_name(dbconfig): + """Check if a file should have dataset_name based on keyspacelen.""" + keyspacelen = dbconfig.get('check', {}).get('keyspacelen', None) + return keyspacelen is not None and keyspacelen > 0 + +def process_file(file_path): + """Process a single YAML file.""" + try: + with open(file_path, 'r') as f: + content = yaml.safe_load(f) + + if not content or 'dbconfig' not in content: + return None, "No dbconfig section" + + dbconfig = content['dbconfig'] + + # Check if file should have dataset_name + should_have_dataset = should_have_dataset_name(dbconfig) + has_dataset_name = 'dataset_name' in dbconfig + + if not should_have_dataset: + if has_dataset_name: + del dbconfig['dataset_name'] + return content, f"Removed dataset_name (keyspacelen=0)" + else: + return None, f"Correct (no dataset_name for keyspacelen=0)" + + # Extract full context for analysis + context = extract_full_context(content, dbconfig) + + # Generate AI-suggested dataset name and description + ai_dataset_name, ai_dataset_description, reasoning = generate_dataset_name_with_ai(context) + + if not ai_dataset_name or ai_dataset_name == "unknown-dataset": + return None, f"Could not generate dataset name: {reasoning}" + + current_dataset_name = dbconfig.get('dataset_name', None) + current_dataset_description = dbconfig.get('dataset_description', None) + + # Check if both name and description are already optimal + if current_dataset_name == ai_dataset_name and current_dataset_description == ai_dataset_description: + return None, f"Already optimal: {ai_dataset_name}" + + # Update dataset_name and dataset_description + dbconfig['dataset_name'] = ai_dataset_name + dbconfig['dataset_description'] = ai_dataset_description + + changes = [] + if current_dataset_name != ai_dataset_name: + changes.append(f"name: {current_dataset_name} -> {ai_dataset_name}") + if current_dataset_description != ai_dataset_description: + changes.append(f"description: {'added' if not current_dataset_description else 'updated'}") + + return content, f"Updated {', '.join(changes)} | {reasoning[:100]}..." + + except Exception as e: + return None, f"Error: {e}" + +def extract_preload_signature(dbconfig): + """Extract a normalized signature of the preload configuration for comparison.""" + if 'preload_tool' in dbconfig: + preload = dbconfig['preload_tool'] + # Create signature from tool and arguments (normalized) + tool = preload.get('tool', '') + args = preload.get('arguments', '').strip() + # Normalize whitespace and quotes for comparison + args = ' '.join(args.split()) + return f"{tool}:{args}" + elif 'init_commands' in dbconfig: + # For init_commands, use the commands themselves + commands = dbconfig['init_commands'] + if isinstance(commands, list): + return "init:" + "|".join(str(cmd).strip() for cmd in commands) + else: + return f"init:{str(commands).strip()}" + else: + return "no_preload" + +def parse_memtier_command(arguments): + """Parse memtier_benchmark arguments to extract key characteristics.""" + import re + + parsed = { + 'data_size': None, + 'command_type': None, + 'fields': [], + 'key_pattern': None, + 'ratio': None, + 'pipeline': None, + 'connections': None, + 'threads': None + } + + # Extract data size + data_size_match = re.search(r'--data-size["\s]+(\d+)', arguments) + if data_size_match: + parsed['data_size'] = int(data_size_match.group(1)) + + # Extract command and analyze structure + command_match = re.search(r'--command["\s]+"([^"]+)"', arguments) + if command_match: + command = command_match.group(1) + parsed['command_type'] = command.split()[0].upper() # GET, SET, HSET, etc. + + # Count fields in HSET commands + if 'HSET' in command: + field_matches = re.findall(r'field\d*', command.lower()) + parsed['fields'] = field_matches + + # Detect ZADD patterns + if 'ZADD' in command: + if '__key__' in command: + parsed['score_type'] = 'integer' + else: + parsed['score_type'] = 'float' + + # Extract other parameters + ratio_match = re.search(r'--ratio["\s]+"([^"]+)"', arguments) + if ratio_match: + parsed['ratio'] = ratio_match.group(1) + + pipeline_match = re.search(r'--pipeline["\s]+(\d+)', arguments) + if pipeline_match: + parsed['pipeline'] = int(pipeline_match.group(1)) + + return parsed + +def analyze_inconsistency_with_ai(dataset_name, inconsistencies, file_details): + """Use OpenAI to analyze dataset inconsistencies with deep memtier command understanding.""" + if not OPENAI_AVAILABLE: + return "manual_review", "OpenAI not available - manual review required" + + try: + # Parse memtier commands for detailed analysis + command_analysis = "" + for detail in file_details: + if 'memtier_benchmark:' in detail['preload_sig']: + args = detail['preload_sig'].split('memtier_benchmark:', 1)[1] + parsed = parse_memtier_command(args) + command_analysis += f"\nFile: {detail['file']}\n" + command_analysis += f" Command Type: {parsed['command_type']}\n" + command_analysis += f" Data Size: {parsed['data_size']}B\n" + command_analysis += f" Fields: {len(parsed['fields'])} ({parsed['fields']})\n" + command_analysis += f" Score Type: {parsed.get('score_type', 'N/A')}\n" + command_analysis += f" Full Command: {args}\n" + + inconsistency_details = "" + for inc in inconsistencies: + inconsistency_details += f"\nFile: {inc['file']}\n" + inconsistency_details += f"Type: {inc['type']}\n" + inconsistency_details += f"Value: {inc['value']}\n" + if inc['type'] == 'preload': + inconsistency_details += f"Expected: {inc['expected']}\n" + + prompt = f""" +You are a Redis benchmark expert analyzing memtier_benchmark command inconsistencies. You need to determine if different memtier commands are functionally equivalent or if they create different datasets. + +Dataset Name: {dataset_name} + +Detailed Command Analysis: +{command_analysis} + +Inconsistencies Found: +{inconsistency_details} + +Your expertise in memtier_benchmark: +1. Understand that --data-size affects value size +2. HSET commands with different field counts create different data structures +3. ZADD commands with __key__ use integer scores, others use float scores +4. --ratio affects read/write mix but not dataset structure +5. --pipeline affects performance but not dataset content +6. --key-pattern affects key distribution but not individual key structure + +Analysis Tasks: +1. Parse each memtier command to understand what data structure it creates +2. Determine if commands are functionally equivalent (create same dataset) +3. Check if dataset name accurately reflects the actual data structure +4. Identify which command (if any) matches the dataset name +5. Recommend corrections to align commands with dataset name + +Key Questions: +- Do all commands create the same data structure? +- Does the dataset name accurately describe what's being created? +- Are differences in --pipeline, --ratio, etc. irrelevant to dataset structure? +- Should commands be standardized or should dataset be split? + +Respond with JSON: +{{ + "commands_equivalent": true/false, + "dataset_name_accurate": true/false, + "canonical_command": "which command correctly matches dataset name", + "issues_found": ["list of specific issues"], + "recommendation": "detailed technical explanation", + "action": "standardize_commands|split_datasets|fix_dataset_name|manual_review", + "corrected_command": "suggested memtier command if standardization needed", + "suggested_dataset_names": ["alternative names if splitting"] +}} +""" + + response = openai.chat.completions.create( + model="gpt-4", + messages=[{"role": "user", "content": prompt}], + temperature=0.1, + max_tokens=1200 + ) + + result = json.loads(response.choices[0].message.content) + return result.get("action", "manual_review"), result.get("recommendation", ""), result + + except Exception as e: + return "manual_review", f"AI analysis error: {e}", {} + +def get_human_approval(dataset_name, action, recommendation, affected_files): + """Get human approval for dataset changes.""" + print(f"\n{'='*80}") + print(f"HUMAN APPROVAL REQUIRED") + print(f"{'='*80}") + print(f"Dataset: {dataset_name}") + print(f"Recommended Action: {action}") + print(f"AI Recommendation: {recommendation}") + print(f"Affected Files: {', '.join(affected_files)}") + print(f"{'='*80}") + + while True: + response = input("Do you approve this change? (y/n/s for skip): ").lower().strip() + if response in ['y', 'yes']: + return True + elif response in ['n', 'no']: + return False + elif response in ['s', 'skip']: + return None + else: + print("Please enter 'y' for yes, 'n' for no, or 's' to skip") + +def validate_dataset_consistency(memtier_files): + """Validate that files with same dataset_name use identical preload commands and descriptions.""" + dataset_info_map = {} # dataset_name -> {preload_sig, description, files, file_details} + inconsistencies = [] + + print("\n" + "="*60) + print("DATASET CONSISTENCY VALIDATION") + print("="*60) + + # Collect all dataset names and their info + for file_path in memtier_files: + try: + with open(file_path, 'r') as f: + content = yaml.safe_load(f) + + if not content or 'dbconfig' not in content: + continue + + dbconfig = content['dbconfig'] + dataset_name = dbconfig.get('dataset_name') + + if not dataset_name: + continue + + preload_sig = extract_preload_signature(dbconfig) + dataset_desc = dbconfig.get('dataset_description', '') + file_name = Path(file_path).name + + if dataset_name not in dataset_info_map: + dataset_info_map[dataset_name] = { + 'preload_sig': preload_sig, + 'description': dataset_desc, + 'files': [], + 'file_details': [] + } + + dataset_info_map[dataset_name]['files'].append(file_name) + dataset_info_map[dataset_name]['file_details'].append({ + 'file': file_name, + 'path': file_path, + 'preload_sig': preload_sig, + 'description': dataset_desc + }) + + # Check for preload inconsistency + if dataset_info_map[dataset_name]['preload_sig'] != preload_sig: + inconsistencies.append({ + 'dataset': dataset_name, + 'type': 'preload', + 'file': file_name, + 'value': preload_sig, + 'expected': dataset_info_map[dataset_name]['preload_sig'] + }) + + # Check for description inconsistency + expected_desc = dataset_info_map[dataset_name]['description'] + if expected_desc and dataset_desc and expected_desc != dataset_desc: + inconsistencies.append({ + 'dataset': dataset_name, + 'type': 'description', + 'file': file_name, + 'value': dataset_desc, + 'expected': expected_desc + }) + elif not expected_desc and dataset_desc: + # Update with first non-empty description found + dataset_info_map[dataset_name]['description'] = dataset_desc + + except Exception as e: + print(f"Error reading {file_path}: {e}") + + # Process inconsistencies with AI analysis + if inconsistencies: + print(f"\n⚠️ Found {len(inconsistencies)} inconsistencies") + + # Group inconsistencies by dataset + dataset_inconsistencies = {} + for inc in inconsistencies: + dataset = inc['dataset'] + if dataset not in dataset_inconsistencies: + dataset_inconsistencies[dataset] = [] + dataset_inconsistencies[dataset].append(inc) + + # Analyze each dataset's inconsistencies + for dataset_name, dataset_incs in dataset_inconsistencies.items(): + print(f"\nAnalyzing inconsistencies for dataset: {dataset_name}") + + # Get detailed file information for this dataset + dataset_file_details = dataset_info_map[dataset_name]['file_details'] + + action, recommendation, ai_result = analyze_inconsistency_with_ai( + dataset_name, dataset_incs, dataset_file_details + ) + affected_files = list(set(inc['file'] for inc in dataset_incs)) + + print(f"AI Analysis:") + print(f" Commands Equivalent: {ai_result.get('commands_equivalent', 'Unknown')}") + print(f" Dataset Name Accurate: {ai_result.get('dataset_name_accurate', 'Unknown')}") + print(f" Issues Found: {', '.join(ai_result.get('issues_found', []))}") + print(f" Recommendation: {action}") + print(f" Details: {recommendation}") + + if ai_result.get('corrected_command'): + print(f" Suggested Command: {ai_result['corrected_command']}") + + if action in ['standardize_commands', 'split_datasets', 'fix_dataset_name']: + approval = get_human_approval(dataset_name, action, recommendation, affected_files) + + if approval is True: + print(f"✅ Approved: Will {action} for {dataset_name}") + # TODO: Implement the actual fixes based on action and ai_result + elif approval is False: + print(f"❌ Rejected: Skipping changes for {dataset_name}") + else: + print(f"⏭️ Skipped: No changes for {dataset_name}") + else: + print(f"ℹ️ No action required for {dataset_name}") + + # Report datasets with multiple files + shared_datasets = {name: info for name, info in dataset_info_map.items() if len(info['files']) > 1} + + if shared_datasets: + print(f"\nDatasets shared by multiple files:") + for dataset_name, info in shared_datasets.items(): + print(f" {dataset_name}: {len(info['files'])} files") + for file_name in info['files']: + print(f" - {file_name}") + if not info['description']: + print(f" ⚠️ Missing dataset_description!") + else: + print("\n✅ No datasets are shared by multiple files") + + return len(shared_datasets) + +def synchronize_dataset_descriptions(memtier_files): + """Ensure files with same dataset_name have identical dataset_description.""" + print("\n" + "="*60) + print("SYNCHRONIZING DATASET DESCRIPTIONS") + print("="*60) + + # First pass: collect canonical descriptions for each dataset + dataset_canonical_desc = {} + dataset_files = {} + + for file_path in memtier_files: + try: + with open(file_path, 'r') as f: + content = yaml.safe_load(f) + + if not content or 'dbconfig' not in content: + continue + + dbconfig = content['dbconfig'] + dataset_name = dbconfig.get('dataset_name') + dataset_desc = dbconfig.get('dataset_description', '') + + if not dataset_name: + continue + + if dataset_name not in dataset_files: + dataset_files[dataset_name] = [] + dataset_files[dataset_name].append(file_path) + + # Use the first non-empty description as canonical + if dataset_desc and dataset_name not in dataset_canonical_desc: + dataset_canonical_desc[dataset_name] = dataset_desc + + except Exception as e: + print(f"Error reading {file_path}: {e}") + + # Second pass: update files with missing or inconsistent descriptions + updated_count = 0 + for dataset_name, files in dataset_files.items(): + if len(files) <= 1: + continue # Skip single-file datasets + + canonical_desc = dataset_canonical_desc.get(dataset_name, '') + if not canonical_desc: + print(f"⚠️ No description found for shared dataset: {dataset_name}") + continue + + for file_path in files: + try: + with open(file_path, 'r') as f: + content = yaml.safe_load(f) + + dbconfig = content['dbconfig'] + current_desc = dbconfig.get('dataset_description', '') + + if current_desc != canonical_desc: + dbconfig['dataset_description'] = canonical_desc + + with open(file_path, 'w') as f: + yaml.dump(content, f, default_flow_style=False, sort_keys=False) + + updated_count += 1 + print(f" ✓ Updated {Path(file_path).name}") + + except Exception as e: + print(f" ✗ Error updating {file_path}: {e}") + + print(f"\nSynchronized descriptions for {updated_count} files") + return updated_count + +def process_file_thread_safe(file_path): + """Thread-safe wrapper for process_file that returns results with file path.""" + try: + updated_content, message = process_file(file_path) + + if updated_content: + # Write the file + with open(file_path, 'w') as f: + yaml.dump(updated_content, f, default_flow_style=False, sort_keys=False) + return file_path, "success", message, updated_content is not None + else: + return file_path, "no_change", message, False + + except Exception as e: + return file_path, "error", f"Processing error: {e}", False + +def main(): + """Main function to process all memtier files with threading.""" + print("AI-powered dataset naming with detailed analysis (Multi-threaded)...") + + if OPENAI_AVAILABLE: + print("✓ OpenAI available - will use GPT-4 for analysis") + else: + print("⚠ OpenAI not available - using manual analysis") + + # Find all memtier files + pattern = "redis_benchmarks_specification/test-suites/memtier*.yml" + memtier_files = glob.glob(pattern) + + # Filter out defaults.yml if it exists + memtier_files = [f for f in memtier_files if not f.endswith('defaults.yml')] + + print(f"\nFound {len(memtier_files)} memtier benchmark files to process") + + # First, validate existing dataset consistency + shared_count = validate_dataset_consistency(memtier_files) + + results = { + 'updated': 0, + 'already_optimal': 0, + 'removed_dataset': 0, + 'no_dataset_needed': 0, + 'errors': 0 + } + + # Process files with threading + max_workers = min(8, len(memtier_files)) # Use up to 8 threads + print(f"\nProcessing with {max_workers} threads...") + + completed = 0 + with ThreadPoolExecutor(max_workers=max_workers) as executor: + # Submit all tasks + future_to_file = {executor.submit(process_file_thread_safe, file_path): file_path + for file_path in sorted(memtier_files)} + + # Process completed tasks + for future in as_completed(future_to_file): + file_path, status, message, was_updated = future.result() + completed += 1 + + # Progress indicator + progress = f"[{completed}/{len(memtier_files)}]" + file_name = Path(file_path).name + + if status == "success": + if "Updated:" in message: + results['updated'] += 1 + print(f"{progress} ✓ {file_name}: {message[:80]}...") + elif "Removed dataset_name" in message: + results['removed_dataset'] += 1 + print(f"{progress} ✓ {file_name}: {message}") + else: + results['updated'] += 1 + print(f"{progress} ✓ {file_name}: Updated") + + elif status == "no_change": + if "Already optimal:" in message: + results['already_optimal'] += 1 + elif "Correct (no dataset_name" in message: + results['no_dataset_needed'] += 1 + elif "error" in message.lower(): + results['errors'] += 1 + print(f"{progress} ✗ {file_name}: {message}") + else: + print(f"{progress} - {file_name}: {message[:60]}...") + + elif status == "error": + results['errors'] += 1 + print(f"{progress} ✗ {file_name}: {message}") + + # Synchronize dataset descriptions for shared datasets + sync_count = synchronize_dataset_descriptions(memtier_files) + + # Validate consistency again after updates + if results['updated'] > 0 or sync_count > 0: + print(f"\n" + "="*60) + print("POST-UPDATE CONSISTENCY VALIDATION") + print("="*60) + shared_count_after = validate_dataset_consistency(memtier_files) + + if shared_count_after > shared_count: + print(f"⚠️ Warning: {shared_count_after - shared_count} new dataset conflicts introduced!") + else: + print("✅ All dataset consistency checks passed!") + + # Print summary + print(f"\n{'='*60}") + print("PROCESSING SUMMARY") + print(f"{'='*60}") + print(f"Total files processed: {len(memtier_files)}") + print(f"Dataset names updated: {results['updated']}") + print(f"Dataset descriptions synchronized: {sync_count}") + print(f"Already optimal: {results['already_optimal']}") + print(f"Dataset names removed (load tests): {results['removed_dataset']}") + print(f"No dataset needed (keyspacelen=0): {results['no_dataset_needed']}") + print(f"Errors: {results['errors']}") + + if results['updated'] > 0: + print(f"\n✅ Successfully updated {results['updated']} dataset names!") + if sync_count > 0: + print(f"✅ Synchronized descriptions for {sync_count} files!") + if results['errors'] > 0: + print(f"\n⚠️ {results['errors']} files had errors - please check manually") + +if __name__ == "__main__": + main() diff --git a/utils/tests/test_self_contained_coordinator.py b/utils/tests/test_self_contained_coordinator.py index bbb91e58..bd84af47 100644 --- a/utils/tests/test_self_contained_coordinator.py +++ b/utils/tests/test_self_contained_coordinator.py @@ -287,12 +287,14 @@ def test_start_redis_container(): docker_client = docker.from_env() redis_containers = [] + redis_password = "test_password_123" command = generate_standalone_redis_server_args( executable, redis_proc_start_port, mnt_point, redis_configuration_parameters, redis_arguments, + redis_password, ) command_str = " ".join(command) db_cpuset_cpus, current_cpu_pos = generate_cpuset_cpus( @@ -308,7 +310,7 @@ def test_start_redis_container(): run_image, temporary_dir, ) - r = redis.StrictRedis(port=redis_proc_start_port) + r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password) try: r.ping() except redis.exceptions.ConnectionError: From 682b4250ebbb7d951cc67e7cdbfe3d57fbb53b6b Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 14:33:51 +0100 Subject: [PATCH 10/16] Fixed SPEC validation. --- .../__cli__/stats.py | 27 +++++++++++-------- ...playbook-session-storage-100k-sessions.yml | 5 ++-- ...k-playbook-session-storage-1k-sessions.yml | 5 ++-- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/redis_benchmarks_specification/__cli__/stats.py b/redis_benchmarks_specification/__cli__/stats.py index 2716ba9f..f54ad357 100644 --- a/redis_benchmarks_specification/__cli__/stats.py +++ b/redis_benchmarks_specification/__cli__/stats.py @@ -223,6 +223,9 @@ def generate_stats_cli_command_logic(args, project_name, project_version): command = command.replace("'", "") if "-key-pattern" in command: continue + # Skip command-ratio and other memtier arguments that start with - + if command.startswith("-"): + continue command = command.lower() if command not in tested_commands: tested_commands.append(command) @@ -238,14 +241,16 @@ def generate_stats_cli_command_logic(args, project_name, project_version): if command not in tracked_commands_json: tracked_commands_json[command] = command_json - group = command_json["group"] - if group not in tested_groups: + # Only process if command_json has group information + if "group" in command_json: + group = command_json["group"] + if group not in tested_groups: - tested_groups.append(group) - if group not in tracked_groups: - tracked_groups.append(group) - tracked_groups_hist[group] = 0 - tracked_groups_hist[group] = tracked_groups_hist[group] + 1 + tested_groups.append(group) + if group not in tracked_groups: + tracked_groups.append(group) + tracked_groups_hist[group] = 0 + tracked_groups_hist[group] = tracked_groups_hist[group] + 1 # Calculate total connections total_connections = clients * threads @@ -262,12 +267,12 @@ def generate_stats_cli_command_logic(args, project_name, project_version): data_sizes[data_size] = 0 data_sizes[data_size] = data_sizes[data_size] + 1 - if tested_commands != origin_tested_commands: + if sorted(tested_commands) != sorted(origin_tested_commands): requires_override = True benchmark_config["tested-commands"] = tested_commands logging.warn( "there is a difference between specified test-commands in the yaml (name={}) and the ones we've detected {}!={}".format( - test_name, origin_tested_commands, tested_commands + test_name, sorted(origin_tested_commands), sorted(tested_commands) ) ) @@ -323,12 +328,12 @@ def generate_stats_cli_command_logic(args, project_name, project_version): ) ) - if tested_groups != origin_tested_groups: + if sorted(tested_groups) != sorted(origin_tested_groups): tested_groups_match_origin = False benchmark_config["tested-groups"] = tested_groups logging.warn( "there is a difference between specified test-groups in the yaml (name={}) and the ones we've detected {}!={}".format( - test_name, origin_tested_groups, tested_groups + test_name, sorted(origin_tested_groups), sorted(tested_groups) ) ) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml index 20843944..c11cd277 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-100k-sessions.yml @@ -140,9 +140,9 @@ dbconfig: return 'OK' tested-groups: - hash -- zset +- sorted-set - set -- string +- scripting tested-commands: - hgetall @@ -154,6 +154,7 @@ tested-commands: - incr - expire - get +- eval redis-topologies: - oss-standalone diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml index 28c0f54d..1f4d0d86 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml @@ -140,9 +140,9 @@ dbconfig: return 'OK' tested-groups: - hash -- zset +- sorted-set - set -- string +- scripting tested-commands: - hgetall @@ -154,6 +154,7 @@ tested-commands: - incr - expire - get +- eval redis-topologies: - oss-standalone From 70f494534fc8ece9b47d20ab0e6a4152ddf38d87 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 14:38:05 +0100 Subject: [PATCH 11/16] Fixed formatting --- .../__cli__/stats.py | 8 +- .../__common__/runner.py | 20 +- .../__compare__/args.py | 4 +- .../__compare__/compare.py | 23 +- .../__runner__/args.py | 6 +- .../__runner__/remote_profiling.py | 4 +- .../__runner__/runner.py | 421 +++++++++++----- .../__self_contained_coordinator__/docker.py | 7 +- .../__self_contained_coordinator__/runners.py | 8 +- .../self_contained_coordinator.py | 8 +- utils/ai_dataset_naming.py | 467 ++++++++++-------- utils/tests/test_runner.py | 185 ++++--- 12 files changed, 734 insertions(+), 427 deletions(-) diff --git a/redis_benchmarks_specification/__cli__/stats.py b/redis_benchmarks_specification/__cli__/stats.py index f54ad357..762373f6 100644 --- a/redis_benchmarks_specification/__cli__/stats.py +++ b/redis_benchmarks_specification/__cli__/stats.py @@ -272,7 +272,9 @@ def generate_stats_cli_command_logic(args, project_name, project_version): benchmark_config["tested-commands"] = tested_commands logging.warn( "there is a difference between specified test-commands in the yaml (name={}) and the ones we've detected {}!={}".format( - test_name, sorted(origin_tested_commands), sorted(tested_commands) + test_name, + sorted(origin_tested_commands), + sorted(tested_commands), ) ) @@ -333,7 +335,9 @@ def generate_stats_cli_command_logic(args, project_name, project_version): benchmark_config["tested-groups"] = tested_groups logging.warn( "there is a difference between specified test-groups in the yaml (name={}) and the ones we've detected {}!={}".format( - test_name, sorted(origin_tested_groups), sorted(tested_groups) + test_name, + sorted(origin_tested_groups), + sorted(tested_groups), ) ) diff --git a/redis_benchmarks_specification/__common__/runner.py b/redis_benchmarks_specification/__common__/runner.py index 81a7672f..10d19efb 100644 --- a/redis_benchmarks_specification/__common__/runner.py +++ b/redis_benchmarks_specification/__common__/runner.py @@ -67,7 +67,9 @@ def execute_init_commands(benchmark_config, r, dbconfig_keyname="dbconfig"): for lua_script in lua_scripts: try: - logging.info("Executing Lua script (length: {} chars)".format(len(lua_script))) + logging.info( + "Executing Lua script (length: {} chars)".format(len(lua_script)) + ) # Execute the Lua script using EVAL command with 0 keys stdout = r.execute_command("EVAL", lua_script, 0) logging.info("Lua script result: {}".format(stdout)) @@ -137,7 +139,6 @@ def extract_testsuites(args): return testsuite_spec_files - def commandstats_latencystats_process_name( metric_name, prefix, setup_name, variant_labels_dict ): @@ -235,6 +236,7 @@ def collect_redis_metrics( return start_time_ms, res, kv_overall + def export_redis_metrics( artifact_version, end_time_ms, @@ -274,9 +276,7 @@ def export_redis_metrics( "branch": tf_github_branch } if git_hash is not None and git_hash != "": - by_variants["by.hash/{}".format(git_hash)] = { - "hash": git_hash - } + by_variants["by.hash/{}".format(git_hash)] = {"hash": git_hash} if artifact_version is not None and artifact_version != "": by_variants["by.version/{}".format(artifact_version)] = { "version": artifact_version @@ -339,8 +339,6 @@ def export_redis_metrics( return datapoint_errors, datapoint_inserts - - def reset_commandstats(redis_conns): for pos, redis_conn in enumerate(redis_conns): logging.info("Resetting commmandstats for shard {}".format(pos)) @@ -468,7 +466,9 @@ def exporter_datasink_common( # Update deployment tracking sets deployment_type_and_name = f"{setup_type}_AND_{setup_name}" - deployment_type_and_name_and_version = f"{setup_type}_AND_{setup_name}_AND_{git_version}" + deployment_type_and_name_and_version = ( + f"{setup_type}_AND_{setup_name}_AND_{git_version}" + ) # Add to deployment-specific set (only if datasink connection is available) if datasink_conn is not None: @@ -483,4 +483,6 @@ def exporter_datasink_common( # Add metadata fields to timeseries metadata metadata["deployment_type_AND_deployment_name"] = deployment_type_and_name - metadata["deployment_type_AND_deployment_name_AND_version"] = deployment_type_and_name_and_version + metadata["deployment_type_AND_deployment_name_AND_version"] = ( + deployment_type_and_name_and_version + ) diff --git a/redis_benchmarks_specification/__compare__/args.py b/redis_benchmarks_specification/__compare__/args.py index 88af1ae2..946a7cb2 100644 --- a/redis_benchmarks_specification/__compare__/args.py +++ b/redis_benchmarks_specification/__compare__/args.py @@ -76,9 +76,7 @@ def create_compare_arguments(parser): parser.add_argument("--baseline_deployment_name", type=str, default="") parser.add_argument("--comparison_deployment_name", type=str, default="") parser.add_argument("--metric_name", type=str, default="ALL_STATS.Totals.Ops/sec") - parser.add_argument( - "--running_platform", type=str, default=None - ) + parser.add_argument("--running_platform", type=str, default=None) parser.add_argument( "--running_platform_baseline", type=str, diff --git a/redis_benchmarks_specification/__compare__/compare.py b/redis_benchmarks_specification/__compare__/compare.py index 6635bb8b..a9062fe8 100644 --- a/redis_benchmarks_specification/__compare__/compare.py +++ b/redis_benchmarks_specification/__compare__/compare.py @@ -1179,7 +1179,9 @@ def from_rts_to_regression_table( if baseline_str != "": filters_baseline.append("{}={}".format(by_str_baseline, baseline_str)) if baseline_deployment_name != "": - filters_baseline.append("deployment_name={}".format(baseline_deployment_name)) + filters_baseline.append( + "deployment_name={}".format(baseline_deployment_name) + ) if baseline_github_org != "": filters_baseline.append(f"github_org={baseline_github_org}") if running_platform_baseline is not None and running_platform_baseline != "": @@ -1195,14 +1197,19 @@ def from_rts_to_regression_table( if comparison_str != "": filters_comparison.append("{}={}".format(by_str_comparison, comparison_str)) if comparison_deployment_name != "": - filters_comparison.append("deployment_name={}".format(comparison_deployment_name)) + filters_comparison.append( + "deployment_name={}".format(comparison_deployment_name) + ) if comparison_github_org != "": filters_comparison.append(f"github_org={comparison_github_org}") if "hash" not in by_str_baseline: filters_baseline.append("hash==") if "hash" not in by_str_comparison: filters_comparison.append("hash==") - if running_platform_comparison is not None and running_platform_comparison != "": + if ( + running_platform_comparison is not None + and running_platform_comparison != "" + ): filters_comparison.append( "running_platform={}".format(running_platform_comparison) ) @@ -1538,7 +1545,9 @@ def from_rts_to_regression_table( def get_only_Totals(baseline_timeseries): logging.warning("\t\tTime-series: {}".format(", ".join(baseline_timeseries))) - logging.info(f"Checking if Totals will reduce timeseries. initial len={len(baseline_timeseries)}") + logging.info( + f"Checking if Totals will reduce timeseries. initial len={len(baseline_timeseries)}" + ) new_base = [] for ts_name in baseline_timeseries: if "io-threads" in ts_name: @@ -1548,8 +1557,10 @@ def get_only_Totals(baseline_timeseries): if "Totals" in ts_name: new_base.append(ts_name) baseline_timeseries = new_base - logging.info(f" final len={len(baseline_timeseries)}") - + logging.info( + f" final len={len(baseline_timeseries)}" + ) + return baseline_timeseries diff --git a/redis_benchmarks_specification/__runner__/args.py b/redis_benchmarks_specification/__runner__/args.py index ece0b5c2..979931ed 100644 --- a/redis_benchmarks_specification/__runner__/args.py +++ b/redis_benchmarks_specification/__runner__/args.py @@ -44,19 +44,19 @@ def create_client_runner_args(project_name): "--deployment_type", type=str, default="oss-standalone", - help="Deployment type for the Redis instance (e.g., oss-standalone, oss-cluster, enterprise)" + help="Deployment type for the Redis instance (e.g., oss-standalone, oss-cluster, enterprise)", ) parser.add_argument( "--deployment_name", type=str, default="redis", - help="Deployment name identifier for the Redis instance" + help="Deployment name identifier for the Redis instance", ) parser.add_argument( "--core_count", type=int, default=None, - help="Number of CPU cores available to the Redis instance" + help="Number of CPU cores available to the Redis instance", ) parser.add_argument("--github_repo", type=str, default="redis") parser.add_argument("--github_org", type=str, default="redis") diff --git a/redis_benchmarks_specification/__runner__/remote_profiling.py b/redis_benchmarks_specification/__runner__/remote_profiling.py index 9012ac8e..062c9762 100644 --- a/redis_benchmarks_specification/__runner__/remote_profiling.py +++ b/redis_benchmarks_specification/__runner__/remote_profiling.py @@ -238,7 +238,9 @@ def extract_server_metadata_for_timeseries(redis_conn) -> Dict[str, str]: else: metadata["config_file"] = "none" - logging.info(f"Extracted {len(metadata)} server metadata fields for timeseries: {list(metadata.keys())}") + logging.info( + f"Extracted {len(metadata)} server metadata fields for timeseries: {list(metadata.keys())}" + ) return metadata diff --git a/redis_benchmarks_specification/__runner__/runner.py b/redis_benchmarks_specification/__runner__/runner.py index e10c0d47..ad3fca73 100644 --- a/redis_benchmarks_specification/__runner__/runner.py +++ b/redis_benchmarks_specification/__runner__/runner.py @@ -250,7 +250,7 @@ def detect_object_encoding(redis_conn, dbconfig): "confidence": 0.0, "sample_size": 0, "total_keys": 0, - "encoding_distribution": {} + "encoding_distribution": {}, } # Determine scanning strategy based on dataset size @@ -258,12 +258,16 @@ def detect_object_encoding(redis_conn, dbconfig): # For small datasets, scan all keys for complete accuracy sample_size = total_keys scan_all_keys = True - logging.info(f"Scanning all {total_keys} keys (small dataset - complete analysis)") + logging.info( + f"Scanning all {total_keys} keys (small dataset - complete analysis)" + ) else: # For large datasets, sample 1% (minimum 10, maximum 1000) sample_size = max(10, min(1000, int(total_keys * 0.01))) scan_all_keys = False - logging.info(f"Sampling {sample_size} keys out of {total_keys} total keys ({(sample_size/total_keys)*100:.2f}%)") + logging.info( + f"Sampling {sample_size} keys out of {total_keys} total keys ({(sample_size/total_keys)*100:.2f}%)" + ) # Use SCAN to get keys encoding_counts = {} @@ -282,7 +286,9 @@ def detect_object_encoding(redis_conn, dbconfig): else: # Sample keys until we reach our target sample size while len(scanned_keys) < sample_size: - cursor, keys = redis_conn.scan(cursor=cursor, count=min(100, sample_size - len(scanned_keys))) + cursor, keys = redis_conn.scan( + cursor=cursor, count=min(100, sample_size - len(scanned_keys)) + ) scanned_keys.extend(keys) # Break if we've completed a full scan @@ -292,25 +298,35 @@ def detect_object_encoding(redis_conn, dbconfig): # Limit to our target sample size scanned_keys = scanned_keys[:sample_size] - logging.debug(f"SCAN completed: found {len(scanned_keys)} keys, cursor ended at {cursor}") + logging.debug( + f"SCAN completed: found {len(scanned_keys)} keys, cursor ended at {cursor}" + ) # If SCAN didn't find any keys but we know there are keys, try KEYS command as fallback if len(scanned_keys) == 0 and total_keys > 0: - logging.warning(f"SCAN found no keys but DBSIZE reports {total_keys} keys. Trying KEYS fallback.") + logging.warning( + f"SCAN found no keys but DBSIZE reports {total_keys} keys. Trying KEYS fallback." + ) try: # Use KEYS * as fallback (only for small datasets to avoid blocking) if total_keys <= 1000: - all_keys = redis_conn.keys('*') - scanned_keys = all_keys[:sample_size] if not scan_all_keys else all_keys + all_keys = redis_conn.keys("*") + scanned_keys = ( + all_keys[:sample_size] if not scan_all_keys else all_keys + ) logging.info(f"KEYS fallback found {len(scanned_keys)} keys") else: - logging.error(f"Cannot use KEYS fallback for large dataset ({total_keys} keys)") + logging.error( + f"Cannot use KEYS fallback for large dataset ({total_keys} keys)" + ) except Exception as e: logging.error(f"KEYS fallback failed: {e}") # Final check: if we still have no keys, return early if len(scanned_keys) == 0: - logging.error(f"No keys found for encoding detection despite DBSIZE={total_keys}") + logging.error( + f"No keys found for encoding detection despite DBSIZE={total_keys}" + ) return { "encoding": "unknown", "confidence": 0.0, @@ -318,7 +334,7 @@ def detect_object_encoding(redis_conn, dbconfig): "total_keys": total_keys, "encoding_distribution": {}, "is_complete_scan": scan_all_keys, - "error": "No keys found by SCAN or KEYS commands" + "error": "No keys found by SCAN or KEYS commands", } # Get encoding for each sampled key @@ -328,10 +344,12 @@ def detect_object_encoding(redis_conn, dbconfig): # Use the redis-py object_encoding method instead of raw command encoding = redis_conn.object("ENCODING", key) if isinstance(encoding, bytes): - encoding = encoding.decode('utf-8') + encoding = encoding.decode("utf-8") elif encoding is None: # Key might have expired or been deleted - logging.debug(f"Key '{key}' returned None encoding (key may have expired)") + logging.debug( + f"Key '{key}' returned None encoding (key may have expired)" + ) continue encoding_counts[encoding] = encoding_counts.get(encoding, 0) + 1 @@ -345,17 +363,21 @@ def detect_object_encoding(redis_conn, dbconfig): logging.warning(f"Failed to get encoding for key {key}: {e}") continue - logging.debug(f"Successfully got encoding for {successful_encodings}/{len(scanned_keys)} keys") + logging.debug( + f"Successfully got encoding for {successful_encodings}/{len(scanned_keys)} keys" + ) if not encoding_counts: - logging.warning(f"No object encodings detected! Scanned {len(scanned_keys)} keys, successful encodings: {successful_encodings}") + logging.warning( + f"No object encodings detected! Scanned {len(scanned_keys)} keys, successful encodings: {successful_encodings}" + ) return { "encoding": "unknown", "confidence": 0.0, "sample_size": 0, "total_keys": total_keys, "encoding_distribution": {}, - "is_complete_scan": scan_all_keys + "is_complete_scan": scan_all_keys, } # Determine dominant encoding @@ -365,8 +387,7 @@ def detect_object_encoding(redis_conn, dbconfig): # Calculate encoding distribution percentages encoding_distribution = { - enc: (count / total_sampled) * 100 - for enc, count in encoding_counts.items() + enc: (count / total_sampled) * 100 for enc, count in encoding_counts.items() } result = { @@ -375,11 +396,13 @@ def detect_object_encoding(redis_conn, dbconfig): "sample_size": total_sampled, "total_keys": total_keys, "encoding_distribution": encoding_distribution, - "is_complete_scan": scan_all_keys + "is_complete_scan": scan_all_keys, } scan_type = "complete scan" if scan_all_keys else "sample" - logging.info(f"Object encoding analysis ({scan_type}): {dominant_encoding[0]} ({confidence*100:.1f}% confidence)") + logging.info( + f"Object encoding analysis ({scan_type}): {dominant_encoding[0]} ({confidence*100:.1f}% confidence)" + ) if len(encoding_counts) > 1: logging.info(f"Encoding distribution: {encoding_distribution}") @@ -393,7 +416,7 @@ def detect_object_encoding(redis_conn, dbconfig): "sample_size": 0, "total_keys": 0, "encoding_distribution": {}, - "error": str(e) + "error": str(e), } @@ -1285,7 +1308,9 @@ def delete_temporary_files( dry_run_count = 0 dry_run_tests = [] # Track test names for dry run output memory_results = [] # Track memory results for memory comparison mode - loaded_datasets = set() # Track datasets that have been loaded (for memory comparison mode) + loaded_datasets = ( + set() + ) # Track datasets that have been loaded (for memory comparison mode) dry_run = args.dry_run memory_comparison_only = args.memory_comparison_only dry_run_include_preload = args.dry_run_include_preload @@ -1315,7 +1340,11 @@ def delete_temporary_files( if "dbconfig" in benchmark_config: # Skip load tests (keyspacelen = 0) in memory comparison mode - keyspacelen = benchmark_config["dbconfig"].get("check", {}).get("keyspacelen", None) + keyspacelen = ( + benchmark_config["dbconfig"] + .get("check", {}) + .get("keyspacelen", None) + ) if keyspacelen is not None and keyspacelen == 0: logging.debug(f"Skipping load test {test_file} (keyspacelen=0)") continue @@ -1331,8 +1360,12 @@ def delete_temporary_files( logging.info(f"Memory comparison mode analysis:") logging.info(f" Total tests with datasets: {total_tests_with_datasets}") logging.info(f" Unique datasets to load: {len(unique_datasets)}") - logging.info(f" Dataset ingestion savings: {total_tests_with_datasets - len(unique_datasets)} skipped loads") - logging.info(f" Load tests skipped: Tests with keyspacelen=0 are automatically excluded") + logging.info( + f" Dataset ingestion savings: {total_tests_with_datasets - len(unique_datasets)} skipped loads" + ) + logging.info( + f" Load tests skipped: Tests with keyspacelen=0 are automatically excluded" + ) if len(unique_datasets) > 0: logging.info(f" Unique datasets: {', '.join(sorted(unique_datasets))}") @@ -1420,7 +1453,7 @@ def delete_temporary_files( # Auto-detect server information if not explicitly provided from redis_benchmarks_specification.__runner__.remote_profiling import ( extract_server_info_for_args, - extract_server_metadata_for_timeseries + extract_server_metadata_for_timeseries, ) detected_info = extract_server_info_for_args(r) @@ -1431,22 +1464,33 @@ def delete_temporary_files( github_repo = args.github_repo # Auto-detect github_org if it's the default value - if args.github_org == "redis" and detected_info["github_org"] != "redis": + if ( + args.github_org == "redis" + and detected_info["github_org"] != "redis" + ): github_org = detected_info["github_org"] logging.info(f"Auto-detected github_org: {github_org}") # Auto-detect github_repo if it's the default value - if args.github_repo == "redis" and detected_info["github_repo"] != "redis": + if ( + args.github_repo == "redis" + and detected_info["github_repo"] != "redis" + ): github_repo = detected_info["github_repo"] logging.info(f"Auto-detected github_repo: {github_repo}") # Auto-detect version if it's the default value - if args.github_version == "NA" and detected_info["github_version"] != "unknown": + if ( + args.github_version == "NA" + and detected_info["github_version"] != "unknown" + ): git_version = detected_info["github_version"] logging.info(f"Auto-detected github_version: {git_version}") # Auto-detect git hash if it's the default value - if (git_hash is None or git_hash == "NA") and detected_info["github_hash"] != "unknown": + if (git_hash is None or git_hash == "NA") and detected_info[ + "github_hash" + ] != "unknown": git_hash = detected_info["github_hash"] logging.info(f"Auto-detected git_hash: {git_hash}") @@ -1455,7 +1499,6 @@ def delete_temporary_files( tf_github_repo = github_repo redis_conns = [r] - if oss_cluster_api_enabled: redis_conns = [] logging.info("updating redis connections from cluster slots") @@ -1499,7 +1542,9 @@ def delete_temporary_files( if redis_pid is not None: redis_pids.append(redis_pid) else: - logging.warning("Redis process_id not found in INFO command, skipping PID collection for this connection") + logging.warning( + "Redis process_id not found in INFO command, skipping PID collection for this connection" + ) # Check if all tested commands are supported by this Redis instance supported_commands = get_supported_redis_commands(redis_conns) @@ -1549,11 +1594,15 @@ def delete_temporary_files( # Send MEMORY PURGE after FLUSHALL for memory comparison mode if memory_comparison_only: try: - logging.info("Sending MEMORY PURGE after FLUSHALL at test start") + logging.info( + "Sending MEMORY PURGE after FLUSHALL at test start" + ) for conn in redis_conns: conn.execute_command("MEMORY", "PURGE") except Exception as e: - logging.warning(f"MEMORY PURGE failed after FLUSHALL at test start: {e}") + logging.warning( + f"MEMORY PURGE failed after FLUSHALL at test start: {e}" + ) benchmark_required_memory = get_benchmark_required_memory( benchmark_config @@ -1691,7 +1740,9 @@ def delete_temporary_files( continue # Check if we should skip tests without dataset - has_dataset = "preload_tool" in benchmark_config.get("dbconfig", {}) + has_dataset = "preload_tool" in benchmark_config.get( + "dbconfig", {} + ) if args.skip_tests_without_dataset is True and not has_dataset: logging.warning( "Skipping test {} as it does not contain a dataset".format( @@ -1706,7 +1757,10 @@ def delete_temporary_files( continue # For memory comparison mode, only run tests with dbconfig - if memory_comparison_only and "dbconfig" not in benchmark_config: + if ( + memory_comparison_only + and "dbconfig" not in benchmark_config + ): logging.warning( "Skipping test {} in memory comparison mode as it does not contain dbconfig".format( test_name @@ -1731,16 +1785,22 @@ def delete_temporary_files( if "dbconfig" in benchmark_config: if "preload_tool" in benchmark_config["dbconfig"]: # Check if this dataset has already been loaded (for memory comparison mode) - dataset_name = benchmark_config["dbconfig"].get("dataset_name") + dataset_name = benchmark_config["dbconfig"].get( + "dataset_name" + ) skip_preload = False if memory_comparison_only and dataset_name: if dataset_name in loaded_datasets: - logging.info(f"Skipping preload for dataset '{dataset_name}' - already loaded") + logging.info( + f"Skipping preload for dataset '{dataset_name}' - already loaded" + ) skip_preload = True continue else: - logging.info(f"Loading dataset '{dataset_name}' for the first time") + logging.info( + f"Loading dataset '{dataset_name}' for the first time" + ) loaded_datasets.add(dataset_name) if not skip_preload: @@ -1787,7 +1847,9 @@ def delete_temporary_files( # Send MEMORY PURGE before preload for memory comparison mode (if FLUSHALL wasn't already done) if memory_comparison_only and not args.flushall_on_every_test_start: try: - logging.info("Sending MEMORY PURGE before preload for memory comparison mode") + logging.info( + "Sending MEMORY PURGE before preload for memory comparison mode" + ) for conn in redis_conns: conn.execute_command("MEMORY", "PURGE") except Exception as e: @@ -1819,12 +1881,20 @@ def delete_temporary_files( start_time_ms, start_time_str, ) = get_start_time_vars() - dataset_load_duration_seconds = 0 # No dataset loading time for memory comparison + dataset_load_duration_seconds = ( + 0 # No dataset loading time for memory comparison + ) # Skip load tests (keyspacelen = 0) in memory comparison mode - keyspacelen = benchmark_config.get("dbconfig", {}).get("check", {}).get("keyspacelen", None) + keyspacelen = ( + benchmark_config.get("dbconfig", {}) + .get("check", {}) + .get("keyspacelen", None) + ) if keyspacelen is not None and keyspacelen == 0: - logging.info(f"Skipping load test {test_name} in memory comparison mode (keyspacelen=0)") + logging.info( + f"Skipping load test {test_name} in memory comparison mode (keyspacelen=0)" + ) delete_temporary_files( temporary_dir_client=temporary_dir_client, full_result_path=None, @@ -1836,10 +1906,14 @@ def delete_temporary_files( if dry_run: dry_run_count = dry_run_count + 1 dry_run_tests.append(test_name) - logging.info(f"[DRY RUN] Would collect memory stats for test {test_name}") + logging.info( + f"[DRY RUN] Would collect memory stats for test {test_name}" + ) # Add dataset info to dry run output - dataset_name = benchmark_config.get("dbconfig", {}).get("dataset_name") + dataset_name = benchmark_config.get("dbconfig", {}).get( + "dataset_name" + ) if dataset_name: logging.info(f"[DRY RUN] Dataset: {dataset_name}") @@ -1857,7 +1931,11 @@ def delete_temporary_files( # Convert list response to dict memory_stats = {} for i in range(0, len(memory_stats_raw), 2): - key = memory_stats_raw[i].decode() if isinstance(memory_stats_raw[i], bytes) else str(memory_stats_raw[i]) + key = ( + memory_stats_raw[i].decode() + if isinstance(memory_stats_raw[i], bytes) + else str(memory_stats_raw[i]) + ) value = memory_stats_raw[i + 1] if isinstance(value, bytes): try: @@ -1876,7 +1954,9 @@ def delete_temporary_files( "keys.bytes-per-key": 0, "dataset.percentage": 0, "overhead.total": 0, - "fragmentation": info.get("mem_fragmentation_ratio", 1.0), + "fragmentation": info.get( + "mem_fragmentation_ratio", 1.0 + ), "fragmentation.bytes": 0, "allocator.allocated": info.get("used_memory", 0), "allocator.resident": info.get("used_memory_rss", 0), @@ -1884,9 +1964,13 @@ def delete_temporary_files( } # Detect object encoding by scanning 1% of the dataset - object_encoding_info = detect_object_encoding(r, benchmark_config.get("dbconfig", {})) - logging.info(f"Object encoding detection: {object_encoding_info.get('encoding', 'unknown')} " - f"({object_encoding_info.get('confidence', 0)*100:.1f}% confidence)") + object_encoding_info = detect_object_encoding( + r, benchmark_config.get("dbconfig", {}) + ) + logging.info( + f"Object encoding detection: {object_encoding_info.get('encoding', 'unknown')} " + f"({object_encoding_info.get('confidence', 0)*100:.1f}% confidence)" + ) # Extract key memory metrics memory_result = { @@ -1894,51 +1978,107 @@ def delete_temporary_files( "total_allocated": memory_stats.get("total.allocated", 0), "dataset_bytes": memory_stats.get("dataset.bytes", 0), "keys_count": memory_stats.get("keys.count", 0), - "keys_bytes_per_key": memory_stats.get("keys.bytes-per-key", 0), - "dataset_percentage": memory_stats.get("dataset.percentage", 0), + "keys_bytes_per_key": memory_stats.get( + "keys.bytes-per-key", 0 + ), + "dataset_percentage": memory_stats.get( + "dataset.percentage", 0 + ), "overhead_total": memory_stats.get("overhead.total", 0), "fragmentation": memory_stats.get("fragmentation", 0), - "fragmentation_bytes": memory_stats.get("fragmentation.bytes", 0), - "allocator_allocated": memory_stats.get("allocator.allocated", 0), - "allocator_resident": memory_stats.get("allocator.resident", 0), - "allocator_fragmentation_ratio": memory_stats.get("allocator-fragmentation.ratio", 0), + "fragmentation_bytes": memory_stats.get( + "fragmentation.bytes", 0 + ), + "allocator_allocated": memory_stats.get( + "allocator.allocated", 0 + ), + "allocator_resident": memory_stats.get( + "allocator.resident", 0 + ), + "allocator_fragmentation_ratio": memory_stats.get( + "allocator-fragmentation.ratio", 0 + ), # Object encoding information - "object_encoding": object_encoding_info.get("encoding", "unknown"), - "encoding_confidence": object_encoding_info.get("confidence", 0.0), - "encoding_sample_size": object_encoding_info.get("sample_size", 0), - "encoding_distribution": object_encoding_info.get("encoding_distribution", {}), - "encoding_is_complete_scan": object_encoding_info.get("is_complete_scan", False), + "object_encoding": object_encoding_info.get( + "encoding", "unknown" + ), + "encoding_confidence": object_encoding_info.get( + "confidence", 0.0 + ), + "encoding_sample_size": object_encoding_info.get( + "sample_size", 0 + ), + "encoding_distribution": object_encoding_info.get( + "encoding_distribution", {} + ), + "encoding_is_complete_scan": object_encoding_info.get( + "is_complete_scan", False + ), } memory_results.append(memory_result) # Push memory metrics to datasink if datasink_push_results_redistimeseries: memory_metrics_dict = { - "memory.total_allocated": memory_result["total_allocated"], + "memory.total_allocated": memory_result[ + "total_allocated" + ], "memory.dataset_bytes": memory_result["dataset_bytes"], "memory.keys_count": memory_result["keys_count"], - "memory.keys_bytes_per_key": memory_result["keys_bytes_per_key"], - "memory.dataset_percentage": memory_result["dataset_percentage"], - "memory.overhead_total": memory_result["overhead_total"], + "memory.keys_bytes_per_key": memory_result[ + "keys_bytes_per_key" + ], + "memory.dataset_percentage": memory_result[ + "dataset_percentage" + ], + "memory.overhead_total": memory_result[ + "overhead_total" + ], "memory.fragmentation": memory_result["fragmentation"], - "memory.fragmentation_bytes": memory_result["fragmentation_bytes"], - "memory.allocator_allocated": memory_result["allocator_allocated"], - "memory.allocator_resident": memory_result["allocator_resident"], - "memory.allocator_fragmentation_ratio": memory_result["allocator_fragmentation_ratio"], - "memory.encoding_confidence": memory_result["encoding_confidence"], - "memory.encoding_sample_size": memory_result["encoding_sample_size"], + "memory.fragmentation_bytes": memory_result[ + "fragmentation_bytes" + ], + "memory.allocator_allocated": memory_result[ + "allocator_allocated" + ], + "memory.allocator_resident": memory_result[ + "allocator_resident" + ], + "memory.allocator_fragmentation_ratio": memory_result[ + "allocator_fragmentation_ratio" + ], + "memory.encoding_confidence": memory_result[ + "encoding_confidence" + ], + "memory.encoding_sample_size": memory_result[ + "encoding_sample_size" + ], } # Add object encoding to metadata - metadata["object_encoding"] = memory_result["object_encoding"] - metadata["encoding_confidence"] = f"{memory_result['encoding_confidence']:.3f}" - metadata["encoding_sample_size"] = str(memory_result["encoding_sample_size"]) - metadata["encoding_scan_type"] = "complete" if memory_result.get("encoding_is_complete_scan", False) else "sample" + metadata["object_encoding"] = memory_result[ + "object_encoding" + ] + metadata["encoding_confidence"] = ( + f"{memory_result['encoding_confidence']:.3f}" + ) + metadata["encoding_sample_size"] = str( + memory_result["encoding_sample_size"] + ) + metadata["encoding_scan_type"] = ( + "complete" + if memory_result.get("encoding_is_complete_scan", False) + else "sample" + ) # Add encoding distribution to metadata if multiple encodings found if len(memory_result["encoding_distribution"]) > 1: - for enc, percentage in memory_result["encoding_distribution"].items(): - metadata[f"encoding_dist_{enc}"] = f"{percentage:.1f}%" + for enc, percentage in memory_result[ + "encoding_distribution" + ].items(): + metadata[f"encoding_dist_{enc}"] = ( + f"{percentage:.1f}%" + ) # Set datapoint_time_ms for memory comparison mode datapoint_time_ms = start_time_ms @@ -1947,9 +2087,15 @@ def delete_temporary_files( metadata["metric-type"] = "memory-stats" # Debug: Check git_hash value and memory metrics before export - logging.info(f"DEBUG: About to export memory metrics with git_hash='{git_hash}', type={type(git_hash)}") - logging.info(f"DEBUG: memory_metrics_dict has {len(memory_metrics_dict)} items: {list(memory_metrics_dict.keys())}") - logging.info(f"DEBUG: Sample values: {dict(list(memory_metrics_dict.items())[:3])}") + logging.info( + f"DEBUG: About to export memory metrics with git_hash='{git_hash}', type={type(git_hash)}" + ) + logging.info( + f"DEBUG: memory_metrics_dict has {len(memory_metrics_dict)} items: {list(memory_metrics_dict.keys())}" + ) + logging.info( + f"DEBUG: Sample values: {dict(list(memory_metrics_dict.items())[:3])}" + ) export_redis_metrics( git_version, datapoint_time_ms, @@ -1967,7 +2113,7 @@ def delete_temporary_files( git_hash, running_platform, ) - + exporter_datasink_common( benchmark_config, 0, # benchmark_duration_seconds = 0 for memory only @@ -1998,13 +2144,19 @@ def delete_temporary_files( # Send MEMORY PURGE after memory comparison (if FLUSHALL at test end is not enabled) if not args.flushall_on_every_test_end: try: - logging.info("Sending MEMORY PURGE after memory comparison") + logging.info( + "Sending MEMORY PURGE after memory comparison" + ) for conn in redis_conns: conn.execute_command("MEMORY", "PURGE") except Exception as e: - logging.warning(f"MEMORY PURGE failed after memory comparison: {e}") + logging.warning( + f"MEMORY PURGE failed after memory comparison: {e}" + ) - logging.info(f"Memory comparison completed for test {test_name}") + logging.info( + f"Memory comparison completed for test {test_name}" + ) delete_temporary_files( temporary_dir_client=temporary_dir_client, full_result_path=None, @@ -2579,11 +2731,15 @@ def delete_temporary_files( # Send MEMORY PURGE after FLUSHALL for memory comparison mode if memory_comparison_only: try: - logging.info("Sending MEMORY PURGE after FLUSHALL at test end") + logging.info( + "Sending MEMORY PURGE after FLUSHALL at test end" + ) for r in redis_conns: r.execute_command("MEMORY", "PURGE") except Exception as e: - logging.warning(f"MEMORY PURGE failed after FLUSHALL at test end: {e}") + logging.warning( + f"MEMORY PURGE failed after FLUSHALL at test end: {e}" + ) except KeyboardInterrupt: logging.info("KeyboardInterrupt caught. Exiting...") @@ -2602,7 +2758,9 @@ def delete_temporary_files( # Check if user requested exit via Ctrl+C if _exit_requested: - logging.info("Exit requested by user. Stopping after exception.") + logging.info( + "Exit requested by user. Stopping after exception." + ) break # tear-down logging.info("Tearing down setup") @@ -2641,7 +2799,9 @@ def delete_temporary_files( # Check if user requested exit via Ctrl+C if _exit_requested: logging.info("Exit requested by user. Printing summary before exit.") - print("\nExecution stopped by user request. Printing summary of completed tests...") + print( + "\nExecution stopped by user request. Printing summary of completed tests..." + ) # Print Redis server information section before results if len(results_matrix) > 0: @@ -2667,7 +2827,9 @@ def delete_temporary_files( # Add note if execution was stopped early if _exit_requested: - print("\n(Note: Execution was stopped early by user request - showing results for completed tests only)") + print( + "\n(Note: Execution was stopped early by user request - showing results for completed tests only)" + ) if client_aggregated_results_folder != "": os.makedirs(client_aggregated_results_folder, exist_ok=True) @@ -2683,13 +2845,13 @@ def delete_temporary_files( # Print memory comparison summary if in memory comparison mode if memory_comparison_only and memory_results: - logging.info("\n" + "="*80) + logging.info("\n" + "=" * 80) logging.info("MEMORY COMPARISON SUMMARY") - logging.info("="*80) + logging.info("=" * 80) logging.info(f"Total unique datasets loaded: {len(loaded_datasets)}") if loaded_datasets: logging.info(f"Datasets: {', '.join(sorted(loaded_datasets))}") - logging.info("="*80) + logging.info("=" * 80) # Create memory summary table memory_headers = [ @@ -2704,7 +2866,7 @@ def delete_temporary_files( "Alloc Fragmentation", "Object Encoding", "Encoding Confidence", - "Scan Type" + "Scan Type", ] memory_matrix = [] @@ -2714,20 +2876,26 @@ def delete_temporary_files( dataset_mb = result["dataset_bytes"] / (1024 * 1024) overhead_mb = result["overhead_total"] / (1024 * 1024) - memory_matrix.append([ - result["test_name"], - f"{total_mb:.1f}MB", - f"{dataset_mb:.1f}MB", - f"{result['keys_count']:,}", - f"{result['keys_bytes_per_key']:.0f}B", - f"{result['dataset_percentage']:.1f}%", - f"{overhead_mb:.1f}MB", - f"{result['fragmentation']:.2f}", - f"{result['allocator_fragmentation_ratio']:.3f}", - result.get("object_encoding", "unknown"), - f"{result.get('encoding_confidence', 0.0)*100:.1f}%", - "complete" if result.get("encoding_is_complete_scan", False) else "sample" - ]) + memory_matrix.append( + [ + result["test_name"], + f"{total_mb:.1f}MB", + f"{dataset_mb:.1f}MB", + f"{result['keys_count']:,}", + f"{result['keys_bytes_per_key']:.0f}B", + f"{result['dataset_percentage']:.1f}%", + f"{overhead_mb:.1f}MB", + f"{result['fragmentation']:.2f}", + f"{result['allocator_fragmentation_ratio']:.3f}", + result.get("object_encoding", "unknown"), + f"{result.get('encoding_confidence', 0.0)*100:.1f}%", + ( + "complete" + if result.get("encoding_is_complete_scan", False) + else "sample" + ), + ] + ) memory_writer = MarkdownTableWriter( table_name="Memory Usage Summary", @@ -2737,9 +2905,13 @@ def delete_temporary_files( memory_writer.write_table() if dry_run is True: - mode_description = "memory comparison" if memory_comparison_only else "benchmark" + mode_description = ( + "memory comparison" if memory_comparison_only else "benchmark" + ) logging.info( - "Number of tests that would have been run ({}): {}".format(mode_description, dry_run_count) + "Number of tests that would have been run ({}): {}".format( + mode_description, dry_run_count + ) ) if _exit_requested: logging.info("(Note: Execution was stopped early by user request)") @@ -2762,14 +2934,25 @@ def delete_temporary_files( with open(test_file, "r") as stream: benchmark_config = yaml.safe_load(stream) - test_name = extract_test_name_from_test_configuration_file(test_file) - if test_name in dry_run_tests and "dbconfig" in benchmark_config: + test_name = extract_test_name_from_test_configuration_file( + test_file + ) + if ( + test_name in dry_run_tests + and "dbconfig" in benchmark_config + ): # Skip load tests in dry run analysis too - keyspacelen = benchmark_config["dbconfig"].get("check", {}).get("keyspacelen", None) + keyspacelen = ( + benchmark_config["dbconfig"] + .get("check", {}) + .get("keyspacelen", None) + ) if keyspacelen is not None and keyspacelen == 0: continue - dataset_name = benchmark_config["dbconfig"].get("dataset_name") + dataset_name = benchmark_config["dbconfig"].get( + "dataset_name" + ) if dataset_name: unique_datasets.add(dataset_name) tests_with_datasets += 1 @@ -2781,7 +2964,9 @@ def delete_temporary_files( logging.info(f"\nMemory comparison analysis:") logging.info(f" Tests with datasets: {tests_with_datasets}") logging.info(f" Unique datasets: {len(unique_datasets)}") - logging.info(f" Dataset ingestion savings: {tests_with_datasets - len(unique_datasets)} skipped loads") + logging.info( + f" Dataset ingestion savings: {tests_with_datasets - len(unique_datasets)} skipped loads" + ) if unique_datasets: logging.info(f" Datasets that would be loaded:") for dataset in sorted(unique_datasets): @@ -3016,7 +3201,9 @@ def get_supported_redis_commands(redis_conns): # Handle case where COMMAND returns 0 commands (likely not supported) if len(supported_commands) == 0: - logging.warning("COMMAND returned 0 commands - likely not supported by this Redis instance") + logging.warning( + "COMMAND returned 0 commands - likely not supported by this Redis instance" + ) return None # Log some sample commands for debugging @@ -3042,7 +3229,9 @@ def get_supported_redis_commands(redis_conns): def check_test_command_support(benchmark_config, supported_commands): """Check if all tested-commands in the benchmark config are supported""" if supported_commands is None or len(supported_commands) == 0: - logging.warning("No supported commands list available (COMMAND not supported or returned 0 commands), skipping command check") + logging.warning( + "No supported commands list available (COMMAND not supported or returned 0 commands), skipping command check" + ) return True, [] if "tested-commands" not in benchmark_config: diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/docker.py b/redis_benchmarks_specification/__self_contained_coordinator__/docker.py index 1daebc0a..f1f4a12a 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/docker.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/docker.py @@ -8,7 +8,12 @@ def generate_standalone_redis_server_args( - binary, port, dbdir, configuration_parameters=None, redis_arguments="", password=None + binary, + port, + dbdir, + configuration_parameters=None, + redis_arguments="", + password=None, ): added_params = ["port", "protected-mode", "dir", "requirepass"] # start redis-server diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py index 85683a23..5d08aa8a 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py @@ -310,7 +310,9 @@ def process_self_contained_coordinator_stream( ) ) - r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password) + r = redis.StrictRedis( + port=redis_proc_start_port, password=redis_password + ) r.ping() redis_pids = [] redis_info = r.info() @@ -318,7 +320,9 @@ def process_self_contained_coordinator_stream( if first_redis_pid is not None: redis_pids.append(first_redis_pid) else: - logging.warning("Redis process_id not found in INFO command") + logging.warning( + "Redis process_id not found in INFO command" + ) ceil_client_cpu_limit = extract_client_cpu_limit( benchmark_config ) diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py index 5ec2c5ac..00be0e1a 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py @@ -880,7 +880,9 @@ def process_self_contained_coordinator_stream( temporary_dir, ) - r = redis.StrictRedis(port=redis_proc_start_port, password=redis_password) + r = redis.StrictRedis( + port=redis_proc_start_port, password=redis_password + ) r.ping() redis_conns = [r] reset_commandstats(redis_conns) @@ -888,7 +890,9 @@ def process_self_contained_coordinator_stream( redis_info = r.info() first_redis_pid = redis_info.get("process_id") if first_redis_pid is None: - logging.warning("Redis process_id not found in INFO command") + logging.warning( + "Redis process_id not found in INFO command" + ) first_redis_pid = "unknown" if git_hash is None and "redis_git_sha1" in redis_info: git_hash = redis_info["redis_git_sha1"] diff --git a/utils/ai_dataset_naming.py b/utils/ai_dataset_naming.py index edc56f9a..c6ae3c2e 100644 --- a/utils/ai_dataset_naming.py +++ b/utils/ai_dataset_naming.py @@ -14,6 +14,7 @@ try: import openai + OPENAI_AVAILABLE = True # Set your OpenAI API key here or via environment variable # openai.api_key = os.getenv("OPENAI_API_KEY") @@ -21,103 +22,110 @@ OPENAI_AVAILABLE = False print("Warning: OpenAI package not installed. Install with: pip install openai") + def extract_full_context(content, dbconfig): """Extract all relevant context for dataset analysis.""" context = { - 'test_name': content.get('name', ''), - 'description': content.get('description', ''), - 'keyspacelen': dbconfig.get('check', {}).get('keyspacelen', 0), - 'preload_details': {}, - 'tested_commands': content.get('tested-commands', []), - 'tested_groups': content.get('tested-groups', []) + "test_name": content.get("name", ""), + "description": content.get("description", ""), + "keyspacelen": dbconfig.get("check", {}).get("keyspacelen", 0), + "preload_details": {}, + "tested_commands": content.get("tested-commands", []), + "tested_groups": content.get("tested-groups", []), } - + # Extract preload information - if 'preload_tool' in dbconfig: - preload = dbconfig['preload_tool'] - context['preload_details'] = { - 'type': 'preload_tool', - 'tool': preload.get('tool', ''), - 'arguments': preload.get('arguments', ''), - 'run_image': preload.get('run_image', '') + if "preload_tool" in dbconfig: + preload = dbconfig["preload_tool"] + context["preload_details"] = { + "type": "preload_tool", + "tool": preload.get("tool", ""), + "arguments": preload.get("arguments", ""), + "run_image": preload.get("run_image", ""), } - elif 'init_commands' in dbconfig: - context['preload_details'] = { - 'type': 'init_commands', - 'commands': dbconfig['init_commands'] + elif "init_commands" in dbconfig: + context["preload_details"] = { + "type": "init_commands", + "commands": dbconfig["init_commands"], } - + return context + def generate_manual_description(context, dataset_name): """Generate a manual description for the dataset.""" - keyspacelen = context['keyspacelen'] + keyspacelen = context["keyspacelen"] # Parse dataset name components - parts = dataset_name.split('-') + parts = dataset_name.split("-") description_parts = [] # Key count description - if 'Mkeys' in dataset_name: + if "Mkeys" in dataset_name: description_parts.append(f"{keyspacelen//1000000} million keys") - elif 'Kkeys' in dataset_name: + elif "Kkeys" in dataset_name: description_parts.append(f"{keyspacelen//1000} thousand keys") - elif 'key' in dataset_name: + elif "key" in dataset_name: if keyspacelen == 1: description_parts.append("1 key") else: description_parts.append(f"{keyspacelen} keys") # Data type description - if 'hash' in parts: + if "hash" in parts: description_parts.append("containing Redis hash data structures") - if any('field' in p for p in parts): - field_part = next(p for p in parts if 'field' in p) - field_count = field_part.split('-')[0] + if any("field" in p for p in parts): + field_part = next(p for p in parts if "field" in p) + field_count = field_part.split("-")[0] description_parts.append(f"with {field_count} field(s) each") - elif 'zset' in parts: + elif "zset" in parts: description_parts.append("containing Redis sorted set data structures") - if 'elements' in dataset_name: - elem_part = next(p for p in parts if 'elements' in p or p.endswith('M') or p.endswith('K')) + if "elements" in dataset_name: + elem_part = next( + p + for p in parts + if "elements" in p or p.endswith("M") or p.endswith("K") + ) description_parts.append(f"with {elem_part} elements each") - elif 'string' in parts: + elif "string" in parts: description_parts.append("containing Redis string values") - elif 'list' in parts: + elif "list" in parts: description_parts.append("containing Redis list data structures") - elif 'set' in parts: + elif "set" in parts: description_parts.append("containing Redis set data structures") - elif 'bitmap' in parts: + elif "bitmap" in parts: description_parts.append("containing Redis bitmap data structures") # Size description - size_parts = [p for p in parts if 'B-size' in p or 'KiB-size' in p] + size_parts = [p for p in parts if "B-size" in p or "KiB-size" in p] if size_parts: - size_info = size_parts[0].replace('-size', '') + size_info = size_parts[0].replace("-size", "") description_parts.append(f"where each value is {size_info}") return ". ".join(description_parts).capitalize() + "." + def generate_dataset_name_with_ai(context): """Use OpenAI to generate a descriptive dataset name based on full context.""" if not OPENAI_AVAILABLE: manual_name = analyze_context_manually(context) manual_desc = generate_manual_description(context, manual_name) return manual_name, manual_desc, "Generated from manual analysis" - + try: # Prepare detailed context for AI preload_info = "" - if context['preload_details'].get('type') == 'preload_tool': + if context["preload_details"].get("type") == "preload_tool": preload_info = f""" Preload Tool: {context['preload_details'].get('tool', '')} Arguments: {context['preload_details'].get('arguments', '')} """ - elif context['preload_details'].get('type') == 'init_commands': + elif context["preload_details"].get("type") == "init_commands": preload_info = f""" Init Commands: {context['preload_details'].get('commands', '')} """ - + prompt = f""" You are analyzing Redis benchmark tests to create precise dataset names. The dataset name should describe the exact data structure and characteristics being loaded, not the operations performed. @@ -176,28 +184,33 @@ def generate_dataset_name_with_ai(context): "size_info": "data size details" }} """ - + response = openai.chat.completions.create( model="gpt-4", # Use GPT-4 for better analysis messages=[{"role": "user", "content": prompt}], temperature=0.1, - max_tokens=500 + max_tokens=500, ) - + result = json.loads(response.choices[0].message.content) - return result.get("dataset_name", ""), result.get("dataset_description", ""), result.get("reasoning", "") - + return ( + result.get("dataset_name", ""), + result.get("dataset_description", ""), + result.get("reasoning", ""), + ) + except Exception as e: manual_name = analyze_context_manually(context) manual_desc = generate_manual_description(context, manual_name) return manual_name, manual_desc, f"AI error, used manual analysis: {e}" + def analyze_context_manually(context): """Manual analysis fallback when AI is not available.""" parts = [] - + # Key count - keyspacelen = context['keyspacelen'] + keyspacelen = context["keyspacelen"] if keyspacelen >= 1000000: parts.append(f"{keyspacelen//1000000}Mkeys") elif keyspacelen >= 1000: @@ -206,39 +219,41 @@ def analyze_context_manually(context): parts.append(f"{keyspacelen}keys") elif keyspacelen == 1: parts.append("1key") - + # Analyze preload for data type and structure - if context['preload_details'].get('type') == 'preload_tool': - args = context['preload_details'].get('arguments', '').lower() - + if context["preload_details"].get("type") == "preload_tool": + args = context["preload_details"].get("arguments", "").lower() + # Detect data type and structure - if 'hset' in args: + if "hset" in args: parts.append("hash") # Count fields in HSET command - field_count = args.count('field') + field_count = args.count("field") if field_count > 0: parts.append(f"{field_count}-fields") else: # Look for pattern like "field __data__" or "field1 __data__ field2 __data__" import re - field_matches = re.findall(r'field\d*', args) + + field_matches = re.findall(r"field\d*", args) if field_matches: parts.append(f"{len(field_matches)}-fields") else: parts.append("1-fields") # Default assumption - elif 'zadd' in args: + elif "zadd" in args: parts.append("zset") - elif 'lpush' in args or 'rpush' in args: + elif "lpush" in args or "rpush" in args: parts.append("list") - elif 'sadd' in args: + elif "sadd" in args: parts.append("set") - elif 'setbit' in args: + elif "setbit" in args: parts.append("bitmap") else: parts.append("string") - + # Extract data size import re + size_match = re.search(r'--data-size["\s]+(\d+)', args) if size_match: size = int(size_match.group(1)) @@ -246,88 +261,98 @@ def analyze_context_manually(context): parts.append(f"{size//1024}KiB-size") else: parts.append(f"{size}B-size") - + # Use tested groups as hint if no preload info - elif context['tested_groups']: - data_type = context['tested_groups'][0] + elif context["tested_groups"]: + data_type = context["tested_groups"][0] parts.append(data_type) - if data_type == 'hash': + if data_type == "hash": parts.append("1-fields") # Default assumption parts.append("32B-size") # Default assumption - + return "-".join(parts) if len(parts) > 1 else "unknown-dataset" + def should_have_dataset_name(dbconfig): """Check if a file should have dataset_name based on keyspacelen.""" - keyspacelen = dbconfig.get('check', {}).get('keyspacelen', None) + keyspacelen = dbconfig.get("check", {}).get("keyspacelen", None) return keyspacelen is not None and keyspacelen > 0 + def process_file(file_path): """Process a single YAML file.""" try: - with open(file_path, 'r') as f: + with open(file_path, "r") as f: content = yaml.safe_load(f) - - if not content or 'dbconfig' not in content: + + if not content or "dbconfig" not in content: return None, "No dbconfig section" - - dbconfig = content['dbconfig'] - + + dbconfig = content["dbconfig"] + # Check if file should have dataset_name should_have_dataset = should_have_dataset_name(dbconfig) - has_dataset_name = 'dataset_name' in dbconfig - + has_dataset_name = "dataset_name" in dbconfig + if not should_have_dataset: if has_dataset_name: - del dbconfig['dataset_name'] + del dbconfig["dataset_name"] return content, f"Removed dataset_name (keyspacelen=0)" else: return None, f"Correct (no dataset_name for keyspacelen=0)" - + # Extract full context for analysis context = extract_full_context(content, dbconfig) - + # Generate AI-suggested dataset name and description - ai_dataset_name, ai_dataset_description, reasoning = generate_dataset_name_with_ai(context) + ai_dataset_name, ai_dataset_description, reasoning = ( + generate_dataset_name_with_ai(context) + ) if not ai_dataset_name or ai_dataset_name == "unknown-dataset": return None, f"Could not generate dataset name: {reasoning}" - current_dataset_name = dbconfig.get('dataset_name', None) - current_dataset_description = dbconfig.get('dataset_description', None) + current_dataset_name = dbconfig.get("dataset_name", None) + current_dataset_description = dbconfig.get("dataset_description", None) # Check if both name and description are already optimal - if current_dataset_name == ai_dataset_name and current_dataset_description == ai_dataset_description: + if ( + current_dataset_name == ai_dataset_name + and current_dataset_description == ai_dataset_description + ): return None, f"Already optimal: {ai_dataset_name}" # Update dataset_name and dataset_description - dbconfig['dataset_name'] = ai_dataset_name - dbconfig['dataset_description'] = ai_dataset_description + dbconfig["dataset_name"] = ai_dataset_name + dbconfig["dataset_description"] = ai_dataset_description changes = [] if current_dataset_name != ai_dataset_name: changes.append(f"name: {current_dataset_name} -> {ai_dataset_name}") if current_dataset_description != ai_dataset_description: - changes.append(f"description: {'added' if not current_dataset_description else 'updated'}") + changes.append( + f"description: {'added' if not current_dataset_description else 'updated'}" + ) return content, f"Updated {', '.join(changes)} | {reasoning[:100]}..." - + except Exception as e: return None, f"Error: {e}" + def extract_preload_signature(dbconfig): """Extract a normalized signature of the preload configuration for comparison.""" - if 'preload_tool' in dbconfig: - preload = dbconfig['preload_tool'] + if "preload_tool" in dbconfig: + preload = dbconfig["preload_tool"] # Create signature from tool and arguments (normalized) - tool = preload.get('tool', '') - args = preload.get('arguments', '').strip() + tool = preload.get("tool", "") + args = preload.get("arguments", "").strip() # Normalize whitespace and quotes for comparison - args = ' '.join(args.split()) + args = " ".join(args.split()) return f"{tool}:{args}" - elif 'init_commands' in dbconfig: + elif "init_commands" in dbconfig: # For init_commands, use the commands themselves - commands = dbconfig['init_commands'] + commands = dbconfig["init_commands"] if isinstance(commands, list): return "init:" + "|".join(str(cmd).strip() for cmd in commands) else: @@ -335,55 +360,57 @@ def extract_preload_signature(dbconfig): else: return "no_preload" + def parse_memtier_command(arguments): """Parse memtier_benchmark arguments to extract key characteristics.""" import re parsed = { - 'data_size': None, - 'command_type': None, - 'fields': [], - 'key_pattern': None, - 'ratio': None, - 'pipeline': None, - 'connections': None, - 'threads': None + "data_size": None, + "command_type": None, + "fields": [], + "key_pattern": None, + "ratio": None, + "pipeline": None, + "connections": None, + "threads": None, } # Extract data size data_size_match = re.search(r'--data-size["\s]+(\d+)', arguments) if data_size_match: - parsed['data_size'] = int(data_size_match.group(1)) + parsed["data_size"] = int(data_size_match.group(1)) # Extract command and analyze structure command_match = re.search(r'--command["\s]+"([^"]+)"', arguments) if command_match: command = command_match.group(1) - parsed['command_type'] = command.split()[0].upper() # GET, SET, HSET, etc. + parsed["command_type"] = command.split()[0].upper() # GET, SET, HSET, etc. # Count fields in HSET commands - if 'HSET' in command: - field_matches = re.findall(r'field\d*', command.lower()) - parsed['fields'] = field_matches + if "HSET" in command: + field_matches = re.findall(r"field\d*", command.lower()) + parsed["fields"] = field_matches # Detect ZADD patterns - if 'ZADD' in command: - if '__key__' in command: - parsed['score_type'] = 'integer' + if "ZADD" in command: + if "__key__" in command: + parsed["score_type"] = "integer" else: - parsed['score_type'] = 'float' + parsed["score_type"] = "float" # Extract other parameters ratio_match = re.search(r'--ratio["\s]+"([^"]+)"', arguments) if ratio_match: - parsed['ratio'] = ratio_match.group(1) + parsed["ratio"] = ratio_match.group(1) pipeline_match = re.search(r'--pipeline["\s]+(\d+)', arguments) if pipeline_match: - parsed['pipeline'] = int(pipeline_match.group(1)) + parsed["pipeline"] = int(pipeline_match.group(1)) return parsed + def analyze_inconsistency_with_ai(dataset_name, inconsistencies, file_details): """Use OpenAI to analyze dataset inconsistencies with deep memtier command understanding.""" if not OPENAI_AVAILABLE: @@ -393,13 +420,15 @@ def analyze_inconsistency_with_ai(dataset_name, inconsistencies, file_details): # Parse memtier commands for detailed analysis command_analysis = "" for detail in file_details: - if 'memtier_benchmark:' in detail['preload_sig']: - args = detail['preload_sig'].split('memtier_benchmark:', 1)[1] + if "memtier_benchmark:" in detail["preload_sig"]: + args = detail["preload_sig"].split("memtier_benchmark:", 1)[1] parsed = parse_memtier_command(args) command_analysis += f"\nFile: {detail['file']}\n" command_analysis += f" Command Type: {parsed['command_type']}\n" command_analysis += f" Data Size: {parsed['data_size']}B\n" - command_analysis += f" Fields: {len(parsed['fields'])} ({parsed['fields']})\n" + command_analysis += ( + f" Fields: {len(parsed['fields'])} ({parsed['fields']})\n" + ) command_analysis += f" Score Type: {parsed.get('score_type', 'N/A')}\n" command_analysis += f" Full Command: {args}\n" @@ -408,7 +437,7 @@ def analyze_inconsistency_with_ai(dataset_name, inconsistencies, file_details): inconsistency_details += f"\nFile: {inc['file']}\n" inconsistency_details += f"Type: {inc['type']}\n" inconsistency_details += f"Value: {inc['value']}\n" - if inc['type'] == 'preload': + if inc["type"] == "preload": inconsistency_details += f"Expected: {inc['expected']}\n" prompt = f""" @@ -460,15 +489,20 @@ def analyze_inconsistency_with_ai(dataset_name, inconsistencies, file_details): model="gpt-4", messages=[{"role": "user", "content": prompt}], temperature=0.1, - max_tokens=1200 + max_tokens=1200, ) result = json.loads(response.choices[0].message.content) - return result.get("action", "manual_review"), result.get("recommendation", ""), result + return ( + result.get("action", "manual_review"), + result.get("recommendation", ""), + result, + ) except Exception as e: return "manual_review", f"AI analysis error: {e}", {} + def get_human_approval(dataset_name, action, recommendation, affected_files): """Get human approval for dataset changes.""" print(f"\n{'='*80}") @@ -481,83 +515,94 @@ def get_human_approval(dataset_name, action, recommendation, affected_files): print(f"{'='*80}") while True: - response = input("Do you approve this change? (y/n/s for skip): ").lower().strip() - if response in ['y', 'yes']: + response = ( + input("Do you approve this change? (y/n/s for skip): ").lower().strip() + ) + if response in ["y", "yes"]: return True - elif response in ['n', 'no']: + elif response in ["n", "no"]: return False - elif response in ['s', 'skip']: + elif response in ["s", "skip"]: return None else: print("Please enter 'y' for yes, 'n' for no, or 's' to skip") + def validate_dataset_consistency(memtier_files): """Validate that files with same dataset_name use identical preload commands and descriptions.""" - dataset_info_map = {} # dataset_name -> {preload_sig, description, files, file_details} + dataset_info_map = ( + {} + ) # dataset_name -> {preload_sig, description, files, file_details} inconsistencies = [] - print("\n" + "="*60) + print("\n" + "=" * 60) print("DATASET CONSISTENCY VALIDATION") - print("="*60) + print("=" * 60) # Collect all dataset names and their info for file_path in memtier_files: try: - with open(file_path, 'r') as f: + with open(file_path, "r") as f: content = yaml.safe_load(f) - if not content or 'dbconfig' not in content: + if not content or "dbconfig" not in content: continue - dbconfig = content['dbconfig'] - dataset_name = dbconfig.get('dataset_name') + dbconfig = content["dbconfig"] + dataset_name = dbconfig.get("dataset_name") if not dataset_name: continue preload_sig = extract_preload_signature(dbconfig) - dataset_desc = dbconfig.get('dataset_description', '') + dataset_desc = dbconfig.get("dataset_description", "") file_name = Path(file_path).name if dataset_name not in dataset_info_map: dataset_info_map[dataset_name] = { - 'preload_sig': preload_sig, - 'description': dataset_desc, - 'files': [], - 'file_details': [] + "preload_sig": preload_sig, + "description": dataset_desc, + "files": [], + "file_details": [], } - dataset_info_map[dataset_name]['files'].append(file_name) - dataset_info_map[dataset_name]['file_details'].append({ - 'file': file_name, - 'path': file_path, - 'preload_sig': preload_sig, - 'description': dataset_desc - }) + dataset_info_map[dataset_name]["files"].append(file_name) + dataset_info_map[dataset_name]["file_details"].append( + { + "file": file_name, + "path": file_path, + "preload_sig": preload_sig, + "description": dataset_desc, + } + ) # Check for preload inconsistency - if dataset_info_map[dataset_name]['preload_sig'] != preload_sig: - inconsistencies.append({ - 'dataset': dataset_name, - 'type': 'preload', - 'file': file_name, - 'value': preload_sig, - 'expected': dataset_info_map[dataset_name]['preload_sig'] - }) + if dataset_info_map[dataset_name]["preload_sig"] != preload_sig: + inconsistencies.append( + { + "dataset": dataset_name, + "type": "preload", + "file": file_name, + "value": preload_sig, + "expected": dataset_info_map[dataset_name]["preload_sig"], + } + ) # Check for description inconsistency - expected_desc = dataset_info_map[dataset_name]['description'] + expected_desc = dataset_info_map[dataset_name]["description"] if expected_desc and dataset_desc and expected_desc != dataset_desc: - inconsistencies.append({ - 'dataset': dataset_name, - 'type': 'description', - 'file': file_name, - 'value': dataset_desc, - 'expected': expected_desc - }) + inconsistencies.append( + { + "dataset": dataset_name, + "type": "description", + "file": file_name, + "value": dataset_desc, + "expected": expected_desc, + } + ) elif not expected_desc and dataset_desc: # Update with first non-empty description found - dataset_info_map[dataset_name]['description'] = dataset_desc + dataset_info_map[dataset_name]["description"] = dataset_desc except Exception as e: print(f"Error reading {file_path}: {e}") @@ -569,7 +614,7 @@ def validate_dataset_consistency(memtier_files): # Group inconsistencies by dataset dataset_inconsistencies = {} for inc in inconsistencies: - dataset = inc['dataset'] + dataset = inc["dataset"] if dataset not in dataset_inconsistencies: dataset_inconsistencies[dataset] = [] dataset_inconsistencies[dataset].append(inc) @@ -579,25 +624,31 @@ def validate_dataset_consistency(memtier_files): print(f"\nAnalyzing inconsistencies for dataset: {dataset_name}") # Get detailed file information for this dataset - dataset_file_details = dataset_info_map[dataset_name]['file_details'] + dataset_file_details = dataset_info_map[dataset_name]["file_details"] action, recommendation, ai_result = analyze_inconsistency_with_ai( dataset_name, dataset_incs, dataset_file_details ) - affected_files = list(set(inc['file'] for inc in dataset_incs)) + affected_files = list(set(inc["file"] for inc in dataset_incs)) print(f"AI Analysis:") - print(f" Commands Equivalent: {ai_result.get('commands_equivalent', 'Unknown')}") - print(f" Dataset Name Accurate: {ai_result.get('dataset_name_accurate', 'Unknown')}") + print( + f" Commands Equivalent: {ai_result.get('commands_equivalent', 'Unknown')}" + ) + print( + f" Dataset Name Accurate: {ai_result.get('dataset_name_accurate', 'Unknown')}" + ) print(f" Issues Found: {', '.join(ai_result.get('issues_found', []))}") print(f" Recommendation: {action}") print(f" Details: {recommendation}") - if ai_result.get('corrected_command'): + if ai_result.get("corrected_command"): print(f" Suggested Command: {ai_result['corrected_command']}") - if action in ['standardize_commands', 'split_datasets', 'fix_dataset_name']: - approval = get_human_approval(dataset_name, action, recommendation, affected_files) + if action in ["standardize_commands", "split_datasets", "fix_dataset_name"]: + approval = get_human_approval( + dataset_name, action, recommendation, affected_files + ) if approval is True: print(f"✅ Approved: Will {action} for {dataset_name}") @@ -610,26 +661,29 @@ def validate_dataset_consistency(memtier_files): print(f"ℹ️ No action required for {dataset_name}") # Report datasets with multiple files - shared_datasets = {name: info for name, info in dataset_info_map.items() if len(info['files']) > 1} + shared_datasets = { + name: info for name, info in dataset_info_map.items() if len(info["files"]) > 1 + } if shared_datasets: print(f"\nDatasets shared by multiple files:") for dataset_name, info in shared_datasets.items(): print(f" {dataset_name}: {len(info['files'])} files") - for file_name in info['files']: + for file_name in info["files"]: print(f" - {file_name}") - if not info['description']: + if not info["description"]: print(f" ⚠️ Missing dataset_description!") else: print("\n✅ No datasets are shared by multiple files") return len(shared_datasets) + def synchronize_dataset_descriptions(memtier_files): """Ensure files with same dataset_name have identical dataset_description.""" - print("\n" + "="*60) + print("\n" + "=" * 60) print("SYNCHRONIZING DATASET DESCRIPTIONS") - print("="*60) + print("=" * 60) # First pass: collect canonical descriptions for each dataset dataset_canonical_desc = {} @@ -637,15 +691,15 @@ def synchronize_dataset_descriptions(memtier_files): for file_path in memtier_files: try: - with open(file_path, 'r') as f: + with open(file_path, "r") as f: content = yaml.safe_load(f) - if not content or 'dbconfig' not in content: + if not content or "dbconfig" not in content: continue - dbconfig = content['dbconfig'] - dataset_name = dbconfig.get('dataset_name') - dataset_desc = dbconfig.get('dataset_description', '') + dbconfig = content["dbconfig"] + dataset_name = dbconfig.get("dataset_name") + dataset_desc = dbconfig.get("dataset_description", "") if not dataset_name: continue @@ -667,23 +721,23 @@ def synchronize_dataset_descriptions(memtier_files): if len(files) <= 1: continue # Skip single-file datasets - canonical_desc = dataset_canonical_desc.get(dataset_name, '') + canonical_desc = dataset_canonical_desc.get(dataset_name, "") if not canonical_desc: print(f"⚠️ No description found for shared dataset: {dataset_name}") continue for file_path in files: try: - with open(file_path, 'r') as f: + with open(file_path, "r") as f: content = yaml.safe_load(f) - dbconfig = content['dbconfig'] - current_desc = dbconfig.get('dataset_description', '') + dbconfig = content["dbconfig"] + current_desc = dbconfig.get("dataset_description", "") if current_desc != canonical_desc: - dbconfig['dataset_description'] = canonical_desc + dbconfig["dataset_description"] = canonical_desc - with open(file_path, 'w') as f: + with open(file_path, "w") as f: yaml.dump(content, f, default_flow_style=False, sort_keys=False) updated_count += 1 @@ -695,6 +749,7 @@ def synchronize_dataset_descriptions(memtier_files): print(f"\nSynchronized descriptions for {updated_count} files") return updated_count + def process_file_thread_safe(file_path): """Thread-safe wrapper for process_file that returns results with file path.""" try: @@ -702,7 +757,7 @@ def process_file_thread_safe(file_path): if updated_content: # Write the file - with open(file_path, 'w') as f: + with open(file_path, "w") as f: yaml.dump(updated_content, f, default_flow_style=False, sort_keys=False) return file_path, "success", message, updated_content is not None else: @@ -711,6 +766,7 @@ def process_file_thread_safe(file_path): except Exception as e: return file_path, "error", f"Processing error: {e}", False + def main(): """Main function to process all memtier files with threading.""" print("AI-powered dataset naming with detailed analysis (Multi-threaded)...") @@ -725,7 +781,7 @@ def main(): memtier_files = glob.glob(pattern) # Filter out defaults.yml if it exists - memtier_files = [f for f in memtier_files if not f.endswith('defaults.yml')] + memtier_files = [f for f in memtier_files if not f.endswith("defaults.yml")] print(f"\nFound {len(memtier_files)} memtier benchmark files to process") @@ -733,11 +789,11 @@ def main(): shared_count = validate_dataset_consistency(memtier_files) results = { - 'updated': 0, - 'already_optimal': 0, - 'removed_dataset': 0, - 'no_dataset_needed': 0, - 'errors': 0 + "updated": 0, + "already_optimal": 0, + "removed_dataset": 0, + "no_dataset_needed": 0, + "errors": 0, } # Process files with threading @@ -747,8 +803,10 @@ def main(): completed = 0 with ThreadPoolExecutor(max_workers=max_workers) as executor: # Submit all tasks - future_to_file = {executor.submit(process_file_thread_safe, file_path): file_path - for file_path in sorted(memtier_files)} + future_to_file = { + executor.submit(process_file_thread_safe, file_path): file_path + for file_path in sorted(memtier_files) + } # Process completed tasks for future in as_completed(future_to_file): @@ -761,42 +819,44 @@ def main(): if status == "success": if "Updated:" in message: - results['updated'] += 1 + results["updated"] += 1 print(f"{progress} ✓ {file_name}: {message[:80]}...") elif "Removed dataset_name" in message: - results['removed_dataset'] += 1 + results["removed_dataset"] += 1 print(f"{progress} ✓ {file_name}: {message}") else: - results['updated'] += 1 + results["updated"] += 1 print(f"{progress} ✓ {file_name}: Updated") elif status == "no_change": if "Already optimal:" in message: - results['already_optimal'] += 1 + results["already_optimal"] += 1 elif "Correct (no dataset_name" in message: - results['no_dataset_needed'] += 1 + results["no_dataset_needed"] += 1 elif "error" in message.lower(): - results['errors'] += 1 + results["errors"] += 1 print(f"{progress} ✗ {file_name}: {message}") else: print(f"{progress} - {file_name}: {message[:60]}...") elif status == "error": - results['errors'] += 1 + results["errors"] += 1 print(f"{progress} ✗ {file_name}: {message}") # Synchronize dataset descriptions for shared datasets sync_count = synchronize_dataset_descriptions(memtier_files) # Validate consistency again after updates - if results['updated'] > 0 or sync_count > 0: - print(f"\n" + "="*60) + if results["updated"] > 0 or sync_count > 0: + print(f"\n" + "=" * 60) print("POST-UPDATE CONSISTENCY VALIDATION") - print("="*60) + print("=" * 60) shared_count_after = validate_dataset_consistency(memtier_files) if shared_count_after > shared_count: - print(f"⚠️ Warning: {shared_count_after - shared_count} new dataset conflicts introduced!") + print( + f"⚠️ Warning: {shared_count_after - shared_count} new dataset conflicts introduced!" + ) else: print("✅ All dataset consistency checks passed!") @@ -812,12 +872,13 @@ def main(): print(f"No dataset needed (keyspacelen=0): {results['no_dataset_needed']}") print(f"Errors: {results['errors']}") - if results['updated'] > 0: + if results["updated"] > 0: print(f"\n✅ Successfully updated {results['updated']} dataset names!") if sync_count > 0: print(f"✅ Synchronized descriptions for {sync_count} files!") - if results['errors'] > 0: + if results["errors"] > 0: print(f"\n⚠️ {results['errors']} files had errors - please check manually") + if __name__ == "__main__": main() diff --git a/utils/tests/test_runner.py b/utils/tests/test_runner.py index f43413d0..8d78fdab 100644 --- a/utils/tests/test_runner.py +++ b/utils/tests/test_runner.py @@ -564,7 +564,7 @@ def test_create_client_runner_args(): ) assert args.benchmark_local_install is True - assert getattr(args, 'memtier_bin_path') == "/custom/path/to/memtier_benchmark" + assert getattr(args, "memtier_bin_path") == "/custom/path/to/memtier_benchmark" # This test case doesn't include --flushall_on_every_test_start, so it should be False assert args.flushall_on_every_test_start is False @@ -1029,10 +1029,15 @@ def test_create_client_runner_args_timeout_buffer(): def test_run_local_command_with_timeout(): """Test the local command timeout functionality""" - from redis_benchmarks_specification.__runner__.runner import run_local_command_with_timeout, calculate_process_timeout + from redis_benchmarks_specification.__runner__.runner import ( + run_local_command_with_timeout, + calculate_process_timeout, + ) # Test successful command - success, stdout, stderr = run_local_command_with_timeout("echo 'test'", 5, "test command") + success, stdout, stderr = run_local_command_with_timeout( + "echo 'test'", 5, "test command" + ) assert success is True assert "test" in stdout @@ -1059,28 +1064,27 @@ def info(self, section): return {} # Test case 1: maxmemory key is missing (should return 0 and warn) - mock_redis_no_maxmemory = MockRedisConnection({ - "used_memory": 1024000, - "total_system_memory": 8589934592 - }) + mock_redis_no_maxmemory = MockRedisConnection( + {"used_memory": 1024000, "total_system_memory": 8589934592} + ) result = get_maxmemory(mock_redis_no_maxmemory) assert result == 0 # Test case 2: maxmemory is 0 (should use total_system_memory) - mock_redis_maxmemory_zero = MockRedisConnection({ - "maxmemory": 0, - "used_memory": 1024000, - "total_system_memory": 8589934592 - }) + mock_redis_maxmemory_zero = MockRedisConnection( + {"maxmemory": 0, "used_memory": 1024000, "total_system_memory": 8589934592} + ) result = get_maxmemory(mock_redis_maxmemory_zero) assert result == 8589934592 # Test case 3: maxmemory has a value (should return that value) - mock_redis_maxmemory_set = MockRedisConnection({ - "maxmemory": 4294967296, # 4GB - "used_memory": 1024000, - "total_system_memory": 8589934592 - }) + mock_redis_maxmemory_set = MockRedisConnection( + { + "maxmemory": 4294967296, # 4GB + "used_memory": 1024000, + "total_system_memory": 8589934592, + } + ) result = get_maxmemory(mock_redis_maxmemory_set) assert result == 4294967296 @@ -1090,7 +1094,7 @@ def test_remote_profiling_pprof_format(): from redis_benchmarks_specification.__runner__.remote_profiling import ( save_profile_with_metadata, extract_redis_metadata, - calculate_profile_duration + calculate_profile_duration, ) import tempfile import os @@ -1098,7 +1102,9 @@ def test_remote_profiling_pprof_format(): # Test save_profile_with_metadata with binary data with tempfile.TemporaryDirectory() as temp_dir: # Mock binary profile data - profile_data = b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff' # Sample gzipped data + profile_data = ( + b"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff" # Sample gzipped data + ) benchmark_name = "test-benchmark" redis_metadata = { "redis_version": "7.0.0", @@ -1106,7 +1112,7 @@ def test_remote_profiling_pprof_format(): "redis_git_dirty": "0", "redis_build_id": "build123", "process_id": "12345", - "tcp_port": "6379" + "tcp_port": "6379", } duration = 10 @@ -1125,12 +1131,12 @@ def test_remote_profiling_pprof_format(): assert os.path.exists(metadata_path) # Verify binary data was written correctly - with open(result_path, 'rb') as f: + with open(result_path, "rb") as f: saved_data = f.read() assert saved_data == profile_data # Verify metadata content - with open(metadata_path, 'r') as f: + with open(metadata_path, "r") as f: metadata_content = f.read() assert "redis_git_sha1=abc123" in metadata_content assert "benchmark_name=test-benchmark" in metadata_content @@ -1144,7 +1150,9 @@ def test_remote_profiling_pprof_format(): def test_extract_server_info_for_args(): """Test the auto-detection of server info from Redis INFO SERVER""" - from redis_benchmarks_specification.__runner__.remote_profiling import extract_server_info_for_args + from redis_benchmarks_specification.__runner__.remote_profiling import ( + extract_server_info_for_args, + ) class MockRedisConnection: def __init__(self, server_info): @@ -1156,12 +1164,14 @@ def info(self, section): return {} # Test case 1: Standard Redis server - mock_redis_standard = MockRedisConnection({ - "redis_version": "7.2.4", - "redis_git_sha1": "05eaf6e4", - "redis_git_dirty": "0", - "redis_build_id": "9ff8e77d3d80abcd" - }) + mock_redis_standard = MockRedisConnection( + { + "redis_version": "7.2.4", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd", + } + ) result = extract_server_info_for_args(mock_redis_standard) assert result["github_org"] == "redis" @@ -1171,14 +1181,16 @@ def info(self, section): assert result["server_name"] == "" # Test case 2: Valkey server - mock_redis_valkey = MockRedisConnection({ - "server_name": "valkey", - "redis_version": "7.2.4", - "valkey_version": "8.1.3", - "redis_git_sha1": "05eaf6e4", - "redis_git_dirty": "0", - "redis_build_id": "9ff8e77d3d80abcd" - }) + mock_redis_valkey = MockRedisConnection( + { + "server_name": "valkey", + "redis_version": "7.2.4", + "valkey_version": "8.1.3", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd", + } + ) result = extract_server_info_for_args(mock_redis_valkey) assert result["github_org"] == "valkey-io" @@ -1188,13 +1200,15 @@ def info(self, section): assert result["server_name"] == "valkey" # Test case 3: Valkey server without valkey_version (fallback to redis_version) - mock_redis_valkey_no_version = MockRedisConnection({ - "server_name": "valkey", - "redis_version": "7.2.4", - "redis_git_sha1": "05eaf6e4", - "redis_git_dirty": "0", - "redis_build_id": "9ff8e77d3d80abcd" - }) + mock_redis_valkey_no_version = MockRedisConnection( + { + "server_name": "valkey", + "redis_version": "7.2.4", + "redis_git_sha1": "05eaf6e4", + "redis_git_dirty": "0", + "redis_build_id": "9ff8e77d3d80abcd", + } + ) result = extract_server_info_for_args(mock_redis_valkey_no_version) assert result["github_org"] == "valkey-io" @@ -1204,11 +1218,13 @@ def info(self, section): assert result["server_name"] == "valkey" # Test case 4: Server with empty git_sha1 (fallback to build_id) - mock_redis_build_id = MockRedisConnection({ - "redis_version": "6.2.0", - "redis_git_sha1": "00000000", # Empty/zero git_sha1 - "redis_build_id": "abc123def456" - }) + mock_redis_build_id = MockRedisConnection( + { + "redis_version": "6.2.0", + "redis_git_sha1": "00000000", # Empty/zero git_sha1 + "redis_build_id": "abc123def456", + } + ) result = extract_server_info_for_args(mock_redis_build_id) assert result["github_org"] == "redis" @@ -1220,7 +1236,9 @@ def info(self, section): def test_extract_server_metadata_for_timeseries(): """Test the extraction of comprehensive server metadata for timeseries""" - from redis_benchmarks_specification.__runner__.remote_profiling import extract_server_metadata_for_timeseries + from redis_benchmarks_specification.__runner__.remote_profiling import ( + extract_server_metadata_for_timeseries, + ) class MockRedisConnection: def __init__(self, server_info): @@ -1232,25 +1250,27 @@ def info(self, section): return {} # Test with comprehensive server info (like Amazon ElastiCache) - mock_redis_comprehensive = MockRedisConnection({ - "redis_version": "7.2.4", - "server_name": "valkey", - "valkey_version": "8.1.3", - "valkey_release_stage": "ga", - "os": "Amazon ElastiCache", - "arch_bits": 64, - "gcc_version": "12.2.0", - "server_mode": "standalone", - "multiplexing_api": "epoll", - "atomicvar_api": "c11-builtin", - "monotonic_clock": "POSIX clock_gettime", - "redis_build_id": "9ff8e77d3d80abcd", - "redis_git_dirty": "0", - "process_supervised": "no", - "availability_zone": "us-east-1a", - "io_threads_active": 0, - "config_file": "/etc/redis/redis.conf" - }) + mock_redis_comprehensive = MockRedisConnection( + { + "redis_version": "7.2.4", + "server_name": "valkey", + "valkey_version": "8.1.3", + "valkey_release_stage": "ga", + "os": "Amazon ElastiCache", + "arch_bits": 64, + "gcc_version": "12.2.0", + "server_mode": "standalone", + "multiplexing_api": "epoll", + "atomicvar_api": "c11-builtin", + "monotonic_clock": "POSIX clock_gettime", + "redis_build_id": "9ff8e77d3d80abcd", + "redis_git_dirty": "0", + "process_supervised": "no", + "availability_zone": "us-east-1a", + "io_threads_active": 0, + "config_file": "/etc/redis/redis.conf", + } + ) result = extract_server_metadata_for_timeseries(mock_redis_comprehensive) @@ -1274,11 +1294,13 @@ def info(self, section): assert result["valkey_release_stage"] == "ga" # Test with minimal server info - mock_redis_minimal = MockRedisConnection({ - "redis_version": "6.2.0", - "os": "Linux 5.4.0-74-generic x86_64", - "arch_bits": 64 - }) + mock_redis_minimal = MockRedisConnection( + { + "redis_version": "6.2.0", + "os": "Linux 5.4.0-74-generic x86_64", + "arch_bits": 64, + } + ) result = extract_server_metadata_for_timeseries(mock_redis_minimal) @@ -1339,11 +1361,16 @@ def test_deployment_arguments(): assert args.core_count is None # Test custom values - args = parser.parse_args([ - "--deployment_type", "oss-cluster", - "--deployment_name", "my-redis-cluster", - "--core_count", "16" - ]) + args = parser.parse_args( + [ + "--deployment_type", + "oss-cluster", + "--deployment_name", + "my-redis-cluster", + "--core_count", + "16", + ] + ) assert args.deployment_type == "oss-cluster" assert args.deployment_name == "my-redis-cluster" assert args.core_count == 16 From 321714ef3f1460bb51b5b569da967e2586cdba5c Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 15:34:21 +0100 Subject: [PATCH 12/16] fixed utils/tests/test_runner.py --- ...ier_benchmark-1Mkeys-100B-expire-use-case.yml | 4 ++-- utils/tests/test_runner.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml index 3ce14a2f..a984cd73 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml @@ -40,8 +40,8 @@ clientconfig: arguments: '"--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c - 50 -t 2 --hide-histogram --test-time 120 "--key-minimum" "1" "--key-maximum" - "1000000"' + 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum + 1000000' resources: requests: cpus: '3' diff --git a/utils/tests/test_runner.py b/utils/tests/test_runner.py index 8d78fdab..076093ac 100644 --- a/utils/tests/test_runner.py +++ b/utils/tests/test_runner.py @@ -45,7 +45,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) (_, benchmark_command_str, _) = prepare_memtier_benchmark_parameters( benchmark_config["clientconfig"], @@ -65,7 +65,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time=5' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time=5 --key-minimum 1 --key-maximum 1000000' ) oss_api_enabled = True (_, benchmark_command_str, _) = prepare_memtier_benchmark_parameters( @@ -79,7 +79,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --cluster-mode "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --cluster-mode "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) oss_api_enabled = False @@ -104,7 +104,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) tls_enabled = True @@ -123,7 +123,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --tls-skip-verify "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --tls-skip-verify "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) tls_skip_verify = False @@ -142,7 +142,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) tls_skip_verify = False @@ -163,7 +163,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --cert cert.file --key key.file "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --cert cert.file --key key.file "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) tls_cacert = "cacert.file" @@ -183,7 +183,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --cert cert.file --key key.file --cacert cacert.file "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --tls --cert cert.file --key key.file --cacert cacert.file "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) From cbd31721ff8aa8d42ec7e416ffc3084d39a5faac Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 16:14:50 +0100 Subject: [PATCH 13/16] Fixed scc memtier benchmarks --- .../test_self_contained_coordinator_memtier.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/utils/tests/test_self_contained_coordinator_memtier.py b/utils/tests/test_self_contained_coordinator_memtier.py index 24dc6b39..f216a4d2 100644 --- a/utils/tests/test_self_contained_coordinator_memtier.py +++ b/utils/tests/test_self_contained_coordinator_memtier.py @@ -105,6 +105,8 @@ def test_self_contained_coordinator_blocking_read(): assert number_processed_streams == 1 test_name = "memtier_benchmark-1Mkeys-100B-expire-use-case" tf_triggering_env = "ci" + tf_github_org = "redis" + tf_github_repo = "redis" deployment_name = "oss-standalone" deployment_type = "oss-standalone" use_metric_context_path = False @@ -711,7 +713,7 @@ def test_self_contained_coordinator_dockerhub_valkey(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics @@ -844,7 +846,7 @@ def test_dockerhub_via_cli(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics @@ -973,11 +975,13 @@ def test_dockerhub_via_cli_airgap(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/{github_org}/{github_repo}/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics - assert "version" in rts.info(by_version_key).labels + key_labels = rts.info(by_version_key).labels + logging.info(key_labels) + assert "version" in key_labels assert redis_version == rts.info(by_version_key).labels["version"] # get all keys @@ -1077,7 +1081,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) oss_api_enabled = True ( @@ -1093,7 +1097,7 @@ def test_prepare_memtier_benchmark_parameters(): ) assert ( benchmark_command_str - == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --cluster-mode "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 300' + == 'memtier_benchmark --json-out-file 1.json --port 12000 --server localhost --cluster-mode "--data-size" "100" --command "SETEX __key__ 10 __data__" --command-key-pattern="R" --command "SET __key__ __data__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 50 -t 2 --hide-histogram --test-time 120 --key-minimum 1 --key-maximum 1000000' ) From 520abf92da09e50f99b927dd76af6b9c80100990 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 16:29:04 +0100 Subject: [PATCH 14/16] Added version label on by hash tags if version is present --- redis_benchmarks_specification/__common__/runner.py | 2 ++ utils/tests/test_self_contained_coordinator_memtier.py | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/redis_benchmarks_specification/__common__/runner.py b/redis_benchmarks_specification/__common__/runner.py index 10d19efb..d9b06f8e 100644 --- a/redis_benchmarks_specification/__common__/runner.py +++ b/redis_benchmarks_specification/__common__/runner.py @@ -277,6 +277,8 @@ def export_redis_metrics( } if git_hash is not None and git_hash != "": by_variants["by.hash/{}".format(git_hash)] = {"hash": git_hash} + if artifact_version is not None and artifact_version != "": + by_variants["by.hash/{}".format(git_hash)]["version"] = artifact_version if artifact_version is not None and artifact_version != "": by_variants["by.version/{}".format(artifact_version)] = { "version": artifact_version diff --git a/utils/tests/test_self_contained_coordinator_memtier.py b/utils/tests/test_self_contained_coordinator_memtier.py index f216a4d2..99c3d88b 100644 --- a/utils/tests/test_self_contained_coordinator_memtier.py +++ b/utils/tests/test_self_contained_coordinator_memtier.py @@ -345,9 +345,9 @@ def test_self_contained_coordinator_dockerhub_preload(): assert len(by_hash_keys) > 0 for hash_key in by_hash_keys: # ensure we have both version and hash info on the key - assert "version" in rts.info(hash_key).labels + # assert "version" in rts.info(hash_key).labels assert "hash" in rts.info(hash_key).labels - assert redis_version == rts.info(hash_key).labels["version"] + # assert redis_version == rts.info(hash_key).labels["version"] except redis.exceptions.ConnectionError: pass @@ -995,7 +995,7 @@ def test_dockerhub_via_cli_airgap(): assert len(by_hash_keys) > 0 for hash_key in by_hash_keys: # ensure we have both version and hash info on the key - assert "version" in rts.info(hash_key).labels + # assert "version" in rts.info(hash_key).labels assert "hash" in rts.info(hash_key).labels assert redis_version == rts.info(hash_key).labels["version"] From 0c9e01986d511c58779ac27cc1f11f2172194686 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 16:37:35 +0100 Subject: [PATCH 15/16] Fixed the timeseries naming --- utils/tests/test_self_contained_coordinator_memtier.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/tests/test_self_contained_coordinator_memtier.py b/utils/tests/test_self_contained_coordinator_memtier.py index 99c3d88b..e3261486 100644 --- a/utils/tests/test_self_contained_coordinator_memtier.py +++ b/utils/tests/test_self_contained_coordinator_memtier.py @@ -327,7 +327,7 @@ def test_self_contained_coordinator_dockerhub_preload(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/redis/redis/memtier_benchmark-1Mkeys-generic-touch-pipeline-10/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/redis/redis/memtier_benchmark-1Mkeys-generic-touch-pipeline-10/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics @@ -453,7 +453,7 @@ def test_self_contained_coordinator_dockerhub(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics @@ -579,7 +579,7 @@ def test_self_contained_coordinator_dockerhub_iothreads(): assert result == True assert number_processed_streams == 1 assert num_process_test_suites == 1 - by_version_key = f"ci.benchmarks.redislabs/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone-02-io-threads/memory_maxmemory" + by_version_key = f"ci.benchmarks.redis/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/by.version/{redis_version}/benchmark_end/oss-standalone-02-io-threads/memory_maxmemory" assert datasink_conn.exists(by_version_key) rts = datasink_conn.ts() # check we have by version metrics @@ -1397,7 +1397,7 @@ def test_self_contained_coordinator_duplicated_ts(): assert number_processed_streams == 1 assert num_process_test_suites == 1 - stat_key = f"ci.benchmarks.redislabs/by.version/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/dockerhub/{running_platform}/oss-standalone/{redis_version}/ALL_STATS.Totals.Ops/sec" + stat_key = f"ci.benchmarks.redis/by.version/ci/redis/redis/memtier_benchmark-1Mkeys-load-string-with-10B-values/dockerhub/{running_platform}/oss-standalone/{redis_version}/ALL_STATS.Totals.Ops/sec" assert datasink_conn.exists(stat_key) rts = datasink_conn.ts() From dec50a62ff6091af4712e8414195da658cf001d3 Mon Sep 17 00:00:00 2001 From: fcosta_oliveira Date: Fri, 8 Aug 2025 16:53:11 +0100 Subject: [PATCH 16/16] Fixed ts prefix --- redis_benchmarks_specification/__common__/timeseries.py | 6 +++--- redis_benchmarks_specification/__compare__/compare.py | 4 ++-- .../__self_contained_coordinator__/prepopulation.py | 2 ++ .../__self_contained_coordinator__/runners.py | 1 + .../self_contained_coordinator.py | 6 +++--- utils/generate_latency_benchmarks.py | 4 ++-- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/redis_benchmarks_specification/__common__/timeseries.py b/redis_benchmarks_specification/__common__/timeseries.py index 17d9629d..e09c35aa 100644 --- a/redis_benchmarks_specification/__common__/timeseries.py +++ b/redis_benchmarks_specification/__common__/timeseries.py @@ -76,7 +76,7 @@ def get_ts_metric_name( else: deployment_name = "" ts_name = ( - "ci.benchmarks.redislabs/{by}/" + "ci.benchmarks.redis/{by}/" "{triggering_env}/{github_org}/{github_repo}/" "{test_name}/{build_variant_str}{running_platform_str}{deployment_type}{deployment_name}/{by_value}/{metric}".format( by=by, @@ -323,7 +323,7 @@ def from_metric_kv_to_timeserie( } original_ts_name = ts_name - target_table_keyname = "target_tables:{triggering_env}:ci.benchmarks.redislabs/{break_by_key}/{break_by_str}/{tf_github_org}/{tf_github_repo}/{deployment_type}/{deployment_name}/{test_name}/{metric_name}".format( + target_table_keyname = "target_tables:{triggering_env}:ci.benchmarks.redis/{break_by_key}/{break_by_str}/{tf_github_org}/{tf_github_repo}/{deployment_type}/{deployment_name}/{test_name}/{metric_name}".format( triggering_env=tf_triggering_env, break_by_key=break_by_key, break_by_str=break_by_str, @@ -679,7 +679,7 @@ def get_overall_dashboard_keynames( if running_platform is not None: running_platform_str = "/{}".format(running_platform) sprefix = ( - "ci.benchmarks.redislabs/" + "ci.benchmarks.redis/" + "{triggering_env}/{github_org}/{github_repo}".format( triggering_env=tf_triggering_env, github_org=tf_github_org, diff --git a/redis_benchmarks_specification/__compare__/compare.py b/redis_benchmarks_specification/__compare__/compare.py index a9062fe8..3b3e624b 100644 --- a/redis_benchmarks_specification/__compare__/compare.py +++ b/redis_benchmarks_specification/__compare__/compare.py @@ -59,7 +59,7 @@ def get_overall_dashboard_keynames( if running_platform is not None: running_platform_str = "/{}".format(running_platform) sprefix = ( - "ci.benchmarks.redislabs/" + "ci.benchmarks.redis/" + "{triggering_env}/{github_org}/{github_repo}".format( triggering_env=tf_triggering_env, github_org=tf_github_org, @@ -128,7 +128,7 @@ def get_start_time_vars(start_time=None): def get_project_compare_zsets(triggering_env, org, repo): - return "ci.benchmarks.redislabs/{}/{}/{}:compare:pull_requests:zset".format( + return "ci.benchmarks.redis/{}/{}/{}:compare:pull_requests:zset".format( triggering_env, org, repo ) diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py b/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py index 07e41b38..246558cc 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py @@ -23,6 +23,7 @@ def data_prepopulation_step( port, temporary_dir, test_name, + redis_password, ): # setup the benchmark ( @@ -53,6 +54,7 @@ def data_prepopulation_step( "localhost", local_benchmark_output_filename, False, + redis_password, ) logging.info( diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py index 5d08aa8a..aee3094e 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/runners.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/runners.py @@ -345,6 +345,7 @@ def process_self_contained_coordinator_stream( redis_proc_start_port, temporary_dir, test_name, + redis_password, ) logging.info( diff --git a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py index 00be0e1a..1488cb3e 100644 --- a/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +++ b/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py @@ -495,10 +495,8 @@ def process_self_contained_coordinator_stream( docker_keep_env=False, restore_build_artifacts_default=True, args=None, + redis_password="redis_coordinator_password_2024", ): - # Use a default password for coordinator Redis instances - redis_password = "redis_coordinator_password_2024" - stream_id = "n/a" overall_result = False total_test_suite_runs = 0 @@ -936,6 +934,7 @@ def process_self_contained_coordinator_stream( redis_proc_start_port, temporary_dir, test_name, + redis_password, ) execute_init_commands( @@ -1700,6 +1699,7 @@ def data_prepopulation_step( port, temporary_dir, test_name, + redis_password, ): # setup the benchmark ( diff --git a/utils/generate_latency_benchmarks.py b/utils/generate_latency_benchmarks.py index a7765b1f..2f3ed8c0 100644 --- a/utils/generate_latency_benchmarks.py +++ b/utils/generate_latency_benchmarks.py @@ -134,7 +134,7 @@ def main(): return # Key for test cases - testcases_key = "ci.benchmarks.redislabs/ci/redis/redis:testcases" + testcases_key = "ci.benchmarks.redis/ci/redis/redis:testcases" # Retrieve test cases testcases = rts.smembers(testcases_key) @@ -147,7 +147,7 @@ def main(): for test_name in testcases: # Construct the time series key ts_key = ( - f"ci.benchmarks.redislabs/by.branch/ci/redis/redis/{test_name}/" + f"ci.benchmarks.redis/by.branch/ci/redis/redis/{test_name}/" "gcc:8.5.0-amd64-debian-buster-default/" "intel64-ubuntu22.04-redis-icx1/oss-standalone/unstable/" "ALL_STATS.Totals.Ops/sec"